ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°ΠΌΠΈ 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
