ΠžΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° систСмот Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° дистрибуирани ΠΈΠ·Π²ΠΎΡ€ΠΈ Git 2.23

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

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

  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git switchΒ» ΠΈ Β«git restoreΒ», ΠΏΡ€ΠΈΠ·Π²Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой малосвязанныС возмоТности Β«git checkoutΒ», Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ манипуляция Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ (ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ созданиС) ΠΈ восстановлСниС Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ (Β«git checkout $commit β€” $filenameΒ») ΠΈΠ»ΠΈ сразу Π² staging area (Β«β€”stagingΒ», Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³Π° Π² Β«git checkoutΒ»). Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Β«git checkoutΒ», Β«git restoreΒ» удаляСт нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· восстанавливаСмых Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ (Β«β€”no-overlayΒ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«git merge β€”quitΒ», которая, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Β«β€”abortΒ», останавливаСт процСсс слияния Π²Π΅Ρ‚ΠΎΠΊ, Π½ΠΎ оставляСт ΠΏΡ€ΠΈ этом Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ. Данная опция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π² случаС, Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсённых Π² Ρ…ΠΎΠ΄Π΅ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ слияния, ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.
  • ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Β«git cloneΒ», Β«git fetchΒ» ΠΈ Β«git pushΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² связанных рСпозиториях (Π·Π°ΠΌΠ΅Π½ΠΈΡ†ΠΈ);
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ΠΎ ΠΎΠΏΡ†ΠΈΠΈ Β«git blame β€”ignore-revΒ» ΠΈ Β«β€”ignore-revs-fileΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… внСсСны Π½Π΅Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, исправлСния форматирования);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«git cherry-pick β€”skipΒ» для пропуска ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Β«git reset && git cherry-pick β€”continueΒ»);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка status.aheadBehind, Ρ„ΠΈΠΊΡΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΎΠΏΡ†ΠΈΡŽ Β«git status β€”[no-]ahead-behindΒ» Π½Π° постоянной основС;
  • Π‘ Π΄Π°Π½Π½ΠΎΠ³ΠΎ выпуска Β«git logΒ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ измСнСния, внСсённыС mailmap, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это ΡƒΠΆΠ΅ происходит Π² git shortlog;
  • БущСствСнно ускорСна опСрация обновлСния прСдставлСнного Π² 2.18 ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ кСша Π³Ρ€Π°Ρ„Π° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (core.commitGraph). Π’Π°ΠΊΠΆΠ΅ ускорСн git for-each-ref Π² случаС использования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… шаблонов ΠΈ сокращСно количСство Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² auto-gc Π² Β«git fetch β€”multipleΒ»;
  • Β«git branch β€”listΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ всСгда ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ detached HEAD Π² самом Π½Π°Ρ‡Π°Π»Π΅ списка нСзависимо ΠΎΡ‚ Π»ΠΎΠΊΠ°Π»ΠΈ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€