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

ДоступСн выпуск распрСдСлСнной систСмы управлСния исходными тСкстами Git 2.31. Git являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых популярных, Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм управлСния вСрсиями, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Π³ΠΈΠ±ΠΊΠΈΠ΅ срСдства Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ ΠΈ слиянии Π²Π΅Ρ‚ΠΎΠΊ. Для обСспСчСния цСлостности истории ΠΈ устойчивости ΠΊ измСнСниям «Π·Π°Π΄Π½ΠΈΠΌ числом» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ нСявноС Ρ…Π΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ всСй ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ истории Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ удостовСрСниС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ подписями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π³ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌ выпуском Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 679 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ участии 85 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 23 Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ приняли участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «git maintenance», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ пСриодичСскиС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° систСмах Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… cron. НапримСр, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ пСриодичСский запуск процСсса ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ рСпозитория, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ рСпозитория ΠΏΡ€ΠΈ автоматичСском Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π²ΠΎ врСмя запуска Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄. Команда «git maintenance» позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ поддСрТания ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ структуры рСпозитория Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½Π΅ блокируя ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСанс — Ρ€Π°Π· Π² час выполняСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ свСТих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ рСпозитория ΠΈ обновлСнию Ρ„Π°ΠΉΠ»Π° с Π³Ρ€Π°Ρ„ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π½ΠΎΡ‡ΡŒ запускаСтся процСсс ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ рСпозитория.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° вСдСния Π½Π° дискС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ индСкса (revindex) для pack-Ρ„Π°ΠΉΠ»ΠΎΠ². Напомним, Ρ‡Ρ‚ΠΎ Git Ρ…Ρ€Π°Π½ΠΈΡ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² pack-Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… информация прСдставлСна Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git fetch ΠΈ git push). Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ pack-Ρ„Π°ΠΉΠ»Π° создаётся индСксный Ρ„Π°ΠΉΠ» (.idx), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‡Π΅Π½ΡŒ быстро ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ смСщСниС Π² pack-Ρ„Π°ΠΉΠ»Π΅, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ хранится Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² Git 2.31 ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ индСкс (.rev) Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ процСсса опрСдСлСния ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² pack-Ρ„Π°ΠΉΠ»Π΅.

    Π Π°Π½Π΅Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ Π½Π° Π»Π΅Ρ‚Ρƒ Π²ΠΎ врСмя Ρ€Π°Π·Π±ΠΎΡ€Π° pack-Ρ„Π°ΠΉΠ»Π° ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² памяти, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяло ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ индСксы ΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π»ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ индСкс ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ построСния индСкса сводится ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ массива ΠΈΠ· ΠΏΠ°Ρ€ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-позиция» ΠΈ Π΅Π³ΠΎ сортировкС ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… pack-Ρ„Π°ΠΉΠ»ΠΎΠ².

    НапримСр, опСрация Π²Ρ‹Π²ΠΎΠ΄Π° содСрТимого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ прямой индСкс, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Π² 62 Ρ€Π°Π·Π° быстрСС, Ρ‡Π΅ΠΌ опСрация ΠΏΠΎΠΊΠ°Π·Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ связи ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π½Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. ПослС использования ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ индСкса ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ стали Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ врСмя. ΠžΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ индСксы Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ fetch ΠΈ push Π·Π° счёт прямой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… с диска. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ индСксы Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, для ΠΈΡ… Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ трСбуСтся Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ настройки «git config pack.writeReverseIndex true» с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ рСпозитория ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «git repack -Ad».

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, основанныС Π½Π° появлСнии Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ commit-graph, примСняСмом для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π½ΠΎΠΌΠ΅Ρ€Π΅ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ускорСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌΠΈ.
  • Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½Ρ‹ возмоТности ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΈΠΌΠ΅Π½ΠΈ основной Π²Π΅Ρ‚ΠΊΠΈ, примСняСмой ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π½ΠΎΠ²Ρ‹Ρ… рСпозиториях (настройка init.defaultBranch). ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ внСшним рСпозиториям git пытаСтся ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD, Ρ‚.Π΅. Ссли внСшний сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Π΅Ρ‚ΠΊΡƒ «main», Ρ‚ΠΎ опСрация «git clone» попытаСтся локально ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ «main». Π’ Git 2.31 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ извлСчСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈ для пустых Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π². НапримСр, ΠΏΡ€ΠΈ локальном ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ рСпозитория ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² Π½Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ, локальная копия Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ выставлСнноС Π½Π° внСшнСм сСрвСрС имя основной Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git rev-list» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—disk-usage», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ вывСсти сводныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  • Π’ ΠΏΡ€Π΅Π΄Π²ΠΊΡƒΡˆΠ΅Π½ΠΈΠΈ грядущСй Π·Π°ΠΌΠ΅Π½Ρ‹ бэкСнда для выполнСния слияний, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ.
  • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ PCRE1.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‚Π° использования сокращённых ссылок, Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ нСзависимо ΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. Π—Π°ΠΏΡ€Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π΅Ρ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· присвоСния значСния «no» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ core.abbrev.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git rev-parse» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—path-format=(absolute|relative)» для явного опрСдСлСния Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ.
  • Π’ скриптах для автодополнСния Π²Π²ΠΎΠ΄Π° Π² Bash ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ» дополнСния для собствСнных ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄ «git».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git bundle» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—stdin» для чтСния ссылок ΠΈΠ· стандартного Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git log» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая опция «—diff-merges=<how>».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git ls-files» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—deduplicatecan» для устранСния Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ маски для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² — «<rev>^!» ΠΈ «<rev>^-<n>».
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git range-diff» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ «—left-only» ΠΈ «—right-only» для ΠΏΠΎΠΊΠ°Π·Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ стороны сравниваСмого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «git diff» ΠΈ «git log» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ —skip-to=<path>» ΠΈ «—rotate-to=<path>» для пропуска ΠΈΠ»ΠΈ пСрСмСщСния Π² ΠΊΠΎΠ½Π΅Ρ† Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ «git difftool» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—skip-to=<path>» для возобновлСния ΠΏΡ€Π΅Ρ€Π²Π°Π½Π½ΠΎΠ³ΠΎ сСанса с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ.
  • КодСкс повСдСния (Code-of-conduct), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½Ρ‹Ρ… ситуаций ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ Π΄ΠΎ вСрсии 2.0 (Ρ€Π°Π½Π΅Π΅ использовалась вСрсия 1.4).

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ