Выпуск систСмы управлСния исходными тСкстами Git 2.56

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· распрСдСлСнной систСмы управлСния исходными тСкстами Git 2.56. Код Git распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPLv2+. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌ выпуском Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 748 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ участии 104 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², 39 ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ приняли участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Git. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° (1, 2, 3):

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ Β«git add β€”resolvedΒ» для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈ ΠΏΡ€ΠΈ выявлСнии ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° хотя Π±Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½Π΅ индСксируСт Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… исправлСния. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git add β€”updateΒ» Π² Π½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ»Ρ‹, находящиСся Π² состоянии ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Π° Π½Π΅ связанныС с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ позволяСт бСзопасно Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ слияниС Π²Π΅Ρ‚ΠΎΠΊ, Π΄Π°ΠΆΠ΅ Ссли Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ находятся Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ (ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«git add β€”updateΒ» добавляла Π² индСкс всС Ρ€Π°Π½Π΅Π΅ отслСТиваСмыС ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅).
  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускорСна Ρ€Π°Π±ΠΎΡ‚Π° с большими рСпозиториями, Π·Π° счёт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска послСдних ΠΎΠ±Ρ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΡ€ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ ΠΈ сравнСнии ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’ процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΎΠΊ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сканированиС сразу послС обнаруТСния всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², Π½Π΅ тратя врСмя Π½Π° дальнСйший ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· протСстированных Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска выросла Π² срСднСм Π² 20 Ρ€Π°Π·, Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ускорСниС достигало 70 Ρ€Π°Π·. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git merge-base β€”all v4.8 v4.9Β» Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ с ядром Linux количСство шагов ΠΎΠ±Ρ…ΠΎΠ΄Π° ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»ΠΎΡΡŒ со 167 тысяч Π΄ΠΎ 3.8 тысяч.
  • Для сСрвСрного примСнСния Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Β«β€”path-walkΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Π΅ pack-Ρ„Π°ΠΉΠ»Ρ‹ Π·Π° счёт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎ ΠΈΡ… ΠΏΡƒΡ‚ΠΈ Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для рСпозитория Fluent UI использованиС Β«β€”path-walkΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ pack-Ρ„Π°ΠΉΠ»Π° с 558 ΠœΠ‘ Π΄ΠΎ 164 ΠœΠ‘). Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ€Π΅ΠΆΠΈΠΌΠ° Β«β€”path-walkΒ» совмСстно с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ достиТимости (reachability bitmap) ΠΈ Π΄Π΅Π»ΡŒΡ‚Π°-островами (delta island), примСняСмыми git-хостингами для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ изоляции Ρ„ΠΎΡ€ΠΊΠΎΠ² ΠΎΡ‚ основного рСпозитория.
  • УстранСны ΡƒΠ·ΠΊΠΈΠ΅ мСста, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠ΅ ΠΊ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ вычислСниям Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… рСпозиториях: ΡƒΠ±Ρ€Π°Π½Ρ‹ лишниС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ состояния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ записи Π² reftable; ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ сканированиС списка ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вставкС Π½ΠΎΠ²ΠΎΠ³ΠΎ pack-Ρ„Π°ΠΉΠ»Π°; ускорСны ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с reftable, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… накопилось ΠΌΠ½ΠΎΠ³ΠΎ записСй ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ; ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Β«git diffΒ» ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ путям. ПослС внСсСния ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Π° с reftable ΠΏΡ€ΠΈ большом числС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ ΡƒΡΠΊΠΎΡ€ΠΈΠ»Π°ΡΡŒ Π² 65 Ρ€Π°Π· (с 13 сСкунд Π΄ΠΎ 0.2 сСкунды), Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git diffΒ» Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Chromium с 500000 элСмСнтами Π² индСксС стало Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ 0.07 сСкунд вмСсто 8 ΠΌΠΈΠ½ΡƒΡ‚.
  • Π’ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git historyΒ», ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ возмоТности для пСрСзаписи истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опСрация Β«git history dropΒ» для удалСния Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с автоматичСским ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² ΠΊ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«git branch β€”delete-merged β€˜origin/*’ β€˜topic-*'Β» для бСзопасного удалСния Π³Ρ€ΡƒΠΏΠΏ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, измСнСния ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π²ΠΎ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Π΅Ρ‚ΠΎΠΊ ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² допускаСтся использованиС масок. Для Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄Π΅Π½Ρ‚ΠΎΠ² Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, Π±Π΅Π· фактичСского выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ Β«β€”dry-runΒ».
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«git refs create|update|delete|renameΒ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для создания, удалСния, пСрСимСнования ΠΈ обновлСния ссылок.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git bisect runΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”reset-when-found=[<where>]Β», которая автоматичСски Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π² состояниС Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° поиска ΠΈΠ»ΠΈ оставляСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π±Π΅Π· нСобходимости ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git bisect resetΒ».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git replayΒ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«β€”linearizeΒ» для использования плоской Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ слияния, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Β«git rebase β€”no-rebase-mergesΒ», Π½ΠΎ Π±Π΅Π· обращСния ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ Π΄Π΅Ρ€Π΅Π²Ρƒ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«git log β€”followΒ» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ отслСТиваниС пСрСимСнования Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ слиянии ΠΏΠΎΠ΄Π²Π΅Ρ‚ΠΎΠΊ. ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ фиксируСтся ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ нСзависимым ΠΎΡ‚ порядка ΠΎΠ±Ρ…ΠΎΠ΄Π° истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git repack -a β€”filter=blob:limit=1m β€”drop-filteredΒ» для удалСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… blob-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π»Π΅Ρ‚Ρƒ (on demand) ΠΈΠ· внСшнСго рСпозитория ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ индСксС. ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ этим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² дальнСйшСм ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«git log β€”graphΒ» для Π³Ρ€Π°Ρ„ΠΎΠ² с нСсколькими нСзависимыми корнями Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ отступов для наглядного отдСлСния нСсвязанных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ выявлСниС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Β«git push origin/mainΒ» вмСсто Β«git push origin mainΒ» ΠΈΠ»ΠΈ Β«git branch β€”set-upstream-to origin mainΒ» вмСсто Β«git branch β€”set-upstream-to=origin/mainΒ», ΠΈ Π²Ρ‹Π²ΠΎΠ΄ подсказки ΠΏΠΎ использованию ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

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

ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры πŸ”₯ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ хостинг для сайтов с Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ DDoS, VPS VDS сСрвСры | ProHoster