ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°Ρ‚Π° систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΊΠΎΠ΄Π° Git 2.22

Π˜Π·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΎ ΠΎΡ‚ освобоТдаванС Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° систСма Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° Git 2.22.0. Git Π΅ Π΅Π΄Π½Π° ΠΎΡ‚ Π½Π°ΠΉ-популярнитС, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ високопроизводитСлни систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° вСрсиитС, прСдоставяща гъвкави Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΈ инструмСнти Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° разклоняванС ΠΈ сливанС. Π—Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° цСлостта Π½Π° историята ΠΈ устойчивостта Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ със Π·Π°Π΄Π½Π° Π΄Π°Ρ‚Π°, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠΏΠ»ΠΈΡ†ΠΈΡ‚Π½ΠΎ Ρ…Π΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° цялата ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π° история във всСки ΠΊΠΎΠΌΠΈΡ‚ ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ възмоТно Π΄Π° сС сСртифицират ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅ ΠΈ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ с Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅.

Π’ сравнСниС с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия, Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π²ΠΊΠ»ΡŽΡ‡Π²Π° 745 ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, ΠΈΠ·Π³ΠΎΡ‚Π²Π΅Π½ΠΈ с участиСто Π½Π° 74 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ 18 участват Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π·Π° ΠΏΡŠΡ€Π²ΠΈ ΠΏΡŠΡ‚. ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • НаличСн ΠΎΡ‚ вСрсия 1.18, новият Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π±Π°Π·ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ β€žgit rebase --rebase-mergesβ€œ замСства старата опция β€ž--preserve-mergesβ€œ, която Π²Π΅Ρ‡Π΅ Π΅ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Π΅Π½Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΡ‚Π° "git rebase" сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° замяна Π½Π° ΠΏΠΎΡ€Π΅Π΄ΠΈΡ†Π° ΠΎΡ‚ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ с Π½ΠΎΠ² основСн ΠΊΠΎΠΌΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° прСмСстванС Π½Π° ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° някаква Π½ΠΎΠ²Π° функция, към Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° главния ΠΊΠ»ΠΎΠ½, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ слСд ΠΊΠ»ΠΎΠ½Π° :

    ΠΎ - ΠΎ - ΠΎ (моята функция)

    /

    ΠΎ - ΠΎ - ΠΎ - ΠΎ - ΠΎ (майстор)

    ΠΎ - ΠΎ - ΠΎ (моята функция)

    /

    ΠΎ - ΠΎ - ΠΎ - ΠΎ - ΠΎ (майстор)

    Π—Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° структурата Π½Π° ΠΊΠ»ΠΎΠ½Π° Π² ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π½ ΠΊΠ»ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° моТСшС Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° опцията β€ž--preserve-mergeβ€œ, която, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС изпълнява Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ (git rebase -i --preserve-merge), позволявашС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° хронологията Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, Π½ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° структурата Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ. Новият Ρ€Π΅ΠΆΠΈΠΌ β€ž--rebase-mergesβ€œ Π²ΠΈ позволява Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡ‚Π΅ структурата Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ΠΊΠ»ΠΎΠ½Π°, ΠΊΠΎΠΉΡ‚ΠΎ сС ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ прСдоставя пълСн Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°Π½Π΅, ΠΏΡ€Π΅Π³Ρ€ΡƒΠΏΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅ Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ.

    НапримСр "--rebase-merge" Вя позволява Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΊΠ°Ρ‡Π²Π°Π½Π΅ Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ към ΠΏΠΎ-Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΠΎΠ½, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° структурата Π½Π° ΠΊΠ»ΠΎΠ½Π° Π² мигрирания ΠΊΠ»ΠΎΠ½ ΠΈ ΠΏΡ€Π°Π²ΠΈ някои ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² Π±Π΅Π»Π΅ΠΆΠΊΠΈΡ‚Π΅ Π·Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅.

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° създаванС Π½Π° Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ въз основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ опрСдСлянС Π½Π° Π±Π°Π·Π°Ρ‚Π° Π·Π° сливанС Π½Π° Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠ»ΠΎΠ½Π° (Π±Π°Π·Π° Π·Π° сливанС, ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към ΠΎΠ±Ρ‰ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½ΠΈΠΊ), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ конструкциитС β€žgit branch new A...Bβ€œ ΠΈ β€žgit checkout -b new A...B", Π² ΠΊΠΎΠΉΡ‚ΠΎ "A ...B" Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½Π΅ Π½Π° Π±Π°Π·Π° Π·Π° сливанС ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π° посочСни Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ "git checkout A...B" прСмСства HEAD към базовия ΠΊΠΎΠΌΠΈΡ‚ ΠΈ "diff A. ..B" ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ "B" ΠΈ ΡΡŠΡ‰ΠΎΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ "A" "Ancestor.

    НапримСр, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΡŠΡ€Ρ…Ρƒ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ my-feature, Ρ‚Π°Π·ΠΈ функция ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ искатС Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΊΠ»ΠΎΠ½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ ΡΡŠΡ‰ΠΎΡ‚ΠΎ място Π² главния ΠΊΠ»ΠΎΠ½, ΠΎΡ‚ ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ ΠΊΠ»ΠΎΠ½ΡŠΡ‚ my-feature. ΠŸΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° изисквашС Ρ€ΡŠΡ‡Π½ΠΎ Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ бСшС Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ…Ρ‚Π΅ голяма история Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄Π° стартиратС β€žgit merge-base master my-featureβ€œ, Π·Π° Π΄Π° изчислитС Ρ…Π΅ΡˆΠ° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π·Π° сливанС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅Ρ‚Π΅ master ΠΈ my-feature ΠΈ създаванС Π½Π° Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ спрямо общия ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½ΠΈΠΊ β€ž git branch my-other-feature hash. Π’ Git 2.22 ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ синтаксиса "git branch my-other-feature A...B", Π·Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠ»ΠΎΠ½ спрямо Π±Π°Π·Π°Ρ‚Π° Π·Π° сливанС Π½Π° Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠ»ΠΎΠ½Π°;

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опция "git branch --show-current" Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΠΎΠ½Π°, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° опСрацията Π·Π° ΠΏΠ»Π°Ρ‰Π°Π½Π΅;
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ опцията β€žgit checkout β€”no-overlay β€” dirβ€œ, която позволява ΠΏΡ€ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ Π½Π° опСрация Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° дирСкторията dir Π΄Π° сС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ във Ρ„ΠΎΡ€ΠΌΠ°, която напълно ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° главния ΠΊΠ»ΠΎΠ½. НапримСр, Π°ΠΊΠΎ ΠΈΠΌΠ° Ρ„Π°ΠΉΠ» Π² Π»ΠΎΠΊΠ°Π»Π½ΠΎΡ‚ΠΎ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° дирСкторията dir, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ Π² главния ΠΊΠ»ΠΎΠ½, Ρ‚ΠΎΠ³Π°Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΡ€ΠΈ изпълнСниС Π½Π° β€žgit checkout master - dirβ€œ Ρ‚ΠΎΠΉ Ρ‰Π΅ бъдС оставСн ΠΈ Π°ΠΊΠΎ β€ž--no-overlay ” Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° опция, тя Ρ‰Π΅ бъдС ΠΈΠ·Ρ‚Ρ€ΠΈΡ‚Π°;
  • ΠšΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° "git diff" ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° унивСрсалСн API Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΎΠΏΡ†ΠΈΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈ възмоТно уСднаквяванСто Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΎΠΏΡ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈ git ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ. НапримСр Π² β€œgit diff” всички ΠΎΠΏΡ†ΠΈΠΈ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ°Ρ‚ своитС антагонисти (β€œ--function-context” ΠΈ β€œ--no-function-context”);
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ‚Π°Π³ΠΎΠ²Π΅, ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ΠΈ към Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π² ΠΈΠ·Ρ…ΠΎΠ΄Π° β€žgit logβ€œ (β€žΡ‚Ρ€Π΅ΠΉΠ»ΡŠΡ€β€œ - Ρ„Π»Π°Π³ΠΎΠ²Π΅ Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° информация, ΠΊΠ°Ρ‚ΠΎ Signed-off-by ΠΈ Co-authored-by). Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡, Ρ‚Π°ΠΊΠ° ΠΈ ΠΏΠΎ стойност, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
    "git log --pretty="%(trailers:key=Reviewed-by,valueonly)";

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° машина Π·Π° прослСдяванС, Trace2, която ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΏΠΎ-гъвкав ΠΈ структуриран ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Trace2 Π²ΠΈ позволява Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‚Π΅ Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° производитСлността Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΈ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ (ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚ сС Π·Π°Π΄Π°Π²Π° ΠΎΡ‚ потрСбитСля, Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ външно);
  • ΠžΡ‚Ρ‡Π΅Ρ‚ΡŠΡ‚ β€žgit bisectβ€œ Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ ΠΏΠΎ-Ρ‡Π΅Ρ‚Π»ΠΈΠ², Π² ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡ‚Π΅ Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚ΠΈ Π²Π΅Ρ‡Π΅ са ΠΏΠΎ-ясно ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π½ΠΈ ΠΈ сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈ статистики Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π° всСки Ρ„Π°ΠΉΠ» (Π½Π° Π½ΠΈΠ²ΠΎ Π±Ρ€ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΈ Ρ€Π΅Π΄ΠΎΠ²Π΅);
  • Евристиката Π·Π° опрСдСлянС Π½Π° прСимСнувания Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π΅ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°, Π·Π° Π΄Π° сС Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΎΡ‚ΠΎ инсталиранС Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π·Π° ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π΅. ΠšΠΎΠ³Π°Ρ‚ΠΎ сС ΡΡŠΠΌΠ½ΡΠ²Π°Ρ‚Π΅, Ρ‚Π°ΠΊΠΈΠ²Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Π΅Ρ‡Π΅ сС ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΈ;
  • Показва сС ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π΄Π° инсталиратС Ρ‚Π°Π³ Π½Π° Π΄Ρ€ΡƒΠ³ Ρ‚Π°Π³, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ сС ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ настройка Π½Π° Ρ‚Π°Π³Π° Π½Π° Π³Ρ€Π΅ΡˆΠ΅Π½ ΠΊΠΎΠΌΠΈΡ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ конструкция ΠΊΠ°Ρ‚ΠΎ β€žgit tag -f -m β€žΠ°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅β€œ my-tag1 my-tag2β€³ Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ създаванС Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π²ΡŠΡ€Ρ…Ρƒ стария ΠΌΠ°Ρ€ΠΊΠ΅Ρ€, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡŠΡ‚ Π΅ ΠΎΡ‡Π°ΠΊΠ²Π°Π» новият Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π΄Π° бъдС инсталиран Π½Π° Π°Π½Π³Π°ΠΆΠΈΠΌΠ΅Π½Ρ‚Π°, към ΠΊΠΎΠΉΡ‚ΠΎ сочи старият ΠΌΠ°Ρ€ΠΊΠ΅Ρ€);
  • Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΎ Π·Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° растСрни изобраТСния (Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° диск структура β€žΡ€Π°ΡΡ‚Ρ€ΠΎΠ²ΠΈ изобраТСния Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚β€œ), ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π΄Π°Π½Π½ΠΈ Π·Π° Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° всСки ΠΊΠΎΠΌΠΈΡ‚, ΠΈ Π²ΠΈ позволяват Π±ΡŠΡ€Π·ΠΎ Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° основСн ΠΎΠ±Π΅ΠΊΡ‚. Π’Π°Π·ΠΈ структура Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ (git fetch).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€