ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ Git 2.39. Git ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ , Π½Π°Π΄ΡΠΆΠ½ΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π±Π°Π·ΠΈΡΡΡΡΠΈΠ΅ΡΡ Π½Π° ΠΎΡΠ²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ. ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΠΈ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ «Π·Π°Π΄Π½ΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΠ²Π½ΠΎΠ΅ Ρ Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠΎΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 483 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΠΈ 86 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ 31 Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΈΠ½ΡΠ» ΡΡΠ°ΡΡΠΈΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π ΠΊΠΎΠΌΠ°Π½Π΄Ρ «git shortlog», ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΄ΠΎΠΊ ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—group» Π΄Π»Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎ ΠΏΠΎΠ»ΡΠΌ, Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠΌΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° ΡΠΏΠΈΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΈΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΈΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ², ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
Π² ΠΏΠΎΠ»Π΅ «Co-authored-by», ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: git shortlog -ns —group=author —group=trailer:co-authored-by
ΠΡΠ²ΠΎΠ΄ shortlog ΠΌΠΎΠΆΠ½ΠΎ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠΏΡΠΈΡ «—group» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΏΡΠΎΡΡΠΈΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΎΡΡΡΡΠΎΠ² ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΡΡΠ° Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ½ΡΡΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ: git shortlog v2.38.0.. —date=’format:%Y-%m’ —group=’%cd’ -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Π Π°Π½ΡΡΠ΅ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π±Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΠ»ΠΈΡ sort ΠΈ uniq: git log v2.38.0.. —date=’format:%Y-%m’ —format=’%cd’ | sort | uniq -c
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° «cruft packs», ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΡΡΠ»ΠΊΠΈ (Π½Π΅ ΡΡΡΠ»Π°ΡΡΡΡ Π²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈ). ΠΠ΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΌΡΡΠΎΡΠ°, Π½ΠΎ Π΄ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ. ΠΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ «cruft packs» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ pack-ΡΠ°ΠΉΠ»Π΅, Π° Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΡΠ°ΠΆΠ°ΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, Ρ
ΡΠ°Π½ΠΈΠΌΠΎΠΉ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ «.mtimes», ΡΡΠΎ Π±Ρ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π»ΠΈΡΡ Ρ ΠΎΠ±ΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠ΅ΠΌΡ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠ΅ΠΉ «—prune=<date>». ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ·-Π·Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ, ΠΎΠ½ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π° 100% Π½Π°Π΄ΡΠΆΠ½ΡΠΌ. Π§ΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΄Π»Ρ ΡΠ΅Π³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρ «git repack» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «—expire-to», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π·Π°Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π²ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ backup.git Π½Π΅Π΄ΠΎΡΡΠΈΠΆΠΈΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 5 ΠΌΠΈΠ½ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: git repack —cruft —cruft-expiration=5.minutes.ago -d —expire-to=../backup.git
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° (Π΄ΠΎ 70%) ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ «git grep —cached» ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π² ΠΎΠ±Π»Π°ΡΡΡΡ , Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (sparse-checkout) ΠΈ Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ (sparse index). Π Π°Π½Π΅Π΅ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ «—cached» Π²Π½Π°ΡΠ°Π»Π΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ»ΡΡ ΠΏΠΎΠΈΡΠΊ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, Π° ΠΏΠΎΡΠΎΠΌ Π² ΡΠ°ΡΡΠΈΡΠ½ΡΡ , ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΡΡΠΈΠΌΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ .
- Π£ΡΠΊΠΎΡΠ΅Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ «git push». ΠΠ° ΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ, Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Ρ 7 ΠΌΠ»Π½ ΡΡΡΠ»ΠΎΠΊ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 3% ΠΎΡ Π²Π°ΡΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ push Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² 4.5 ΡΠ°Π·Π°.
- ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «git apply» ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΏΠ°ΡΡΠ΅ΠΉ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 1 ΠΠ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ°.
- ΠΠ»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΡΡΠΊΠΈ Π»ΠΈΡΠ½Π΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π²ΡΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ h2h3 Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ GIT_TRACE_CURL=1 ΠΈΠ»ΠΈ GIT_CURL_VERBOSE=1 Π²ΠΌΠ΅ΡΡΠ΅ Ρ HTTP/2.
- ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ check out Ρ Π²Π΅ΡΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° «git symbolic-ref HEAD» ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, Π° Π½Π΅ ΠΈΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° @{-1} Π² ΠΎΠΏΡΠΈΠΈ «—edit-description» («git branch —edit-description @{-1}») Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ»ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «git merge-tree —stdin», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Π²Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡΠΎΠΊ.
- ΠΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΡΠ½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ fsmonitor, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π€Π‘.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru