ΠΈΠ·Π΄Π°Π΄Π΅Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΡΠ΅ΠΊΡΡ . Git Π΅ Π΅Π΄Π½Π° ΠΎΡ Π½Π°ΠΉ-ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡΠ΅, Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ° Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π½Π΅Π»ΠΈΠ½Π΅Π΅Π½ ΡΠΎΡΡΡΠ΅Ρ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅. ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΎΡΡΡΠ° Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° ΠΈ ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡΠ° ΡΡΠ΅ΡΡ ΡΠ΅ΡΡΠΎΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠΌΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° ΠΏΡΠ΅Π΄ΠΈΡΠ½Π° ΠΈΡΡΠΎΡΠΈΡ Π² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΈΡ, ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Ρ ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°Π³ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠΈΡΠΈ.
Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, Π² Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° Π²Π½Π΅ΡΠ΅Π½ΠΈ 745 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π΅Π½ΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 74 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 18 ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ. :
- ΠΠ°Π»ΠΈΡΠ΅Π½ ΠΎΡ Π²Π΅ΡΡΠΈΡ 1.18, Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ Π½Π° Π½Π°Π±ΠΎΡ ΠΎΡ ΠΊΠΎΠΌΠΈΡΠΈ Β«git rebase βrebase-mergesΒ» Π·Π°ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠ°ΡΠ° ΠΎΠΏΡΠΈΡ Β«βpreserve-mergesΒ», ΠΊΠΎΡΡΠΎ ΡΠ΅Π³Π° Π΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ ΠΎΡΡΠ°ΡΡΠ»Π°. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° Β«git rebaseΒ» ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π·Π° Π·Π°ΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΠΈΡ ΠΎΡ ΠΊΠΎΠΌΠΈΡΠΈ Ρ Π½ΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΊΠΎΠΌΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ, Π² Π°ΠΊΡΡΠ°Π»Π½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠ»ΠΎΠ½, Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ»Π΅Π΄ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΡΠΎ:
o β o β o (my-feature)
/
o β o β o β o β o (master)
o β o β o (my-feature)
/
o β o β o β o β o (master)
ΠΠ° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π² ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈΡ ΠΊΠ»ΠΎΠ½ ΠΏΡΠ΅Π΄ΠΈ ΡΠ΅ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»Π° ΠΎΠΏΡΠΈΡΡΠ° Β«βpreserve-mergesΒ», ΠΊΠΎΡΡΠΎ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ (git rebase -i βpreserve-merges) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅, Π½ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ»Π½ΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Β«βrebase-mergesΒ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈΡ ΠΊΠ»ΠΎΠ½, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΠΏΡΠ»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, ΠΏΡΠ΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«βrebase-mergesΒ» ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ Π½Π° ΠΊΠΎΠΌΠΈΡΠΈ ΠΎΡ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΠΊΠ»ΠΎΠ½ ΠΊΡΠΌ ΠΏΠΎ-Π½ΠΎΠ² ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΊΠ»ΠΎΠ½, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π² ΠΏΡΠ΅Π½ΠΎΡΠΈΠΌΠΈΡ ΠΊΠ»ΠΎΠ½, ΠΈ Π²Π½Π°ΡΡΠ½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π±Π΅Π»Π΅ΠΆΠΊΠΈΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΌΠΈΡΠΈΡΠ΅ Π½Π° ΠΌΡΡΡΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ² ΠΊΠ»ΠΎΠ½ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° ΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° Π΄Π²Π° Π΄ΡΡΠ³ΠΈ ΠΊΠ»ΠΎΠ½Π° (merge base, ΠΏΡΠΈΠ²ΡΡΠ·Π°Π½ΠΎΡΡ ΠΊΡΠΌ ΠΎΠ±ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΠΊ) ΡΡΠ΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Β«git branch new Aβ¦BΒ» ΠΈ Β«git checkout -b new Aβ¦BΒ», Π² ΠΊΠΎΠΈΡΠΎ Β«Aβ¦BΒ» ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²Π°ΡΠ° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΈΡΠ°, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ Ρ ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Β«git checkout Aβ¦BΒ» ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π° HEAD Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠΎΠΌΠΈΡ ΠΈ Β«diff Aβ¦BΒ» ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΈΡ Β«BΒ» ΠΈ ΠΎΠ±ΡΠΈΡ ΠΌΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΠΊ Ρ ΠΊΠΎΠΌΠΈΡ Β«AΒ».
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΡΠ΄Π΅Π»Π½Π° ΠΊΠ»ΠΎΠ½ΠΊΠ° my-feature, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π°ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ ΠΎΡ Π΄ΡΡΠ³ ΠΊΠ»ΠΎΠ½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ ΡΡΡΠΎΡΠΎ ΠΌΡΡΡΠΎ Π² master-ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ°, ΠΎΡΠΊΡΠ΄Π΅ΡΠΎ Π΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π° ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ° my-feature. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π±Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΡΠΈ ΠΆΡΡΠ½Π°Π»ΡΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π½Π΅ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° Π³ΠΎΠ»ΡΠΌΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ βgit merge-base master my-featureβ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° Ρ Π΅ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΎΠ½ΠΊΠΈΡΠ΅ master ΠΈ my-feature ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ²Π° ΠΊΠ»ΠΎΠ½ΠΊΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½ΠΈΠΊ βgit branch my-other-feature Ρ Π΅Ρβ. Π Git 2.22, Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΊΠ° ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π±Π°Π·Π°ΡΠ° Π·Π° ΡΠ»ΠΈΠ²Π°Π½Π΅ Π½Π° Π΄Π²Π΅ Π΄ΡΡΠ³ΠΈ ΠΊΠ»ΠΎΠ½ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ βgit branch my-other-feature Aβ¦Bβ;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° βgit branch βshow-currentβ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ°, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° checkout;
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° βgit checkout βno-overlay β dirβ, ΠΊΠΎΡΡΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° checkout ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° dir Π΄ΠΎ Π²ΠΈΠ΄, Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° master-ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ Π² Π»ΠΎΠΊΠ°Π»Π½Π°ΡΠ° ΠΊΠΎΠΏΠΈΡ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠ° dir ΠΈΠΌΠ° ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ Π»ΠΈΠΏΡΠ²Π° Π² master-ΠΊΠ»ΠΎΠ½ΠΊΠ°ΡΠ°, ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° βgit checkout master β dirβ ΡΠΎΠΉ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΡΠ°Π²Π΅Π½, Π° ΠΏΡΠΈ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΡΡΠ° ββno-overlayβ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ;
- Π ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βgit diffβ Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ API Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΎΠΏΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ Ρ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π½Π° git. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² βgit diffβ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΡΠΈΠΈ ΡΠ΅Π³Π° ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π°Π½ΡΠ°Π³ΠΎΠ½ΠΈΡΡΠΈ (ββfunction-contextβ ΠΈ ββno-function-contextβ);
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° βgit logβ Π½Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½ΠΈΡΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ (βtrailerβ β Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ Signed-off-by ΠΈ Co-authored-by). ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΡΠΎ ΠΏΠΎ ΠΊΠ»ΡΡ, ΡΠ°ΠΊΠ° ΠΈ ΠΏΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
βgit log βpretty=β%(trailers:key=Reviewed-by,valueonly)β; - ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Trace2, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΠΎ-Π³ΡΠ²ΠΊΠ°Π² ΠΈ ΡΡΡΡΠΊΡΡΡΠΈΡΠ°Π½ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄Π°. Trace2 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»Π΅ΠΌΠ΅ΡΡΠΈΡ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π·Π° ΠΏΠΎ-ΠΏΠΎΠ΄ΡΠΎΠ±Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ (ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ°Π²Π° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Π½Π°Π²ΡΠ½);
- Π‘ΡΠ°Π½Π°Π» Π΅ ΠΏΠΎ-ΡΠΈΡΠΈΠΌ ΠΎΡΡΠ΅ΡΠ° βgit bisectβ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³Π° ΠΏΠΎ-ΡΡΠ½ΠΎ ΡΠ΅ ΠΎΡΠΊΡΠΎΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΈ ΠΈ ΡΠ΅ ΠΈΠ·Π½Π°ΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ°ΠΉΠ» (Π½Π° Π½ΠΈΠ²ΠΎ Π±ΡΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅);
- ΠΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π΅ Ρ Π΅Π²ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ Ρ ΡΠ΅Π» ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π»ΡΠΈΠ²ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π·Π° ΠΏΡΠ΅ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡ. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠΌΠ½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ·ΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ ΠΊΠ°ΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΈ;
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅Ρ Π½Π° Π΄ΡΡΠ³ Π΅ΡΠΈΠΊΠ΅Ρ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ Π³ΡΠ΅ΡΠΊΠ° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅Ρ Π½Π΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° "git tag -f -m 'updated message' my-tag1 my-tag2" ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅Ρ Π½Π° ΡΡΠ°Ρ Π΅ΡΠΈΠΊΠ΅Ρ, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ Π΅ ΠΎΡΠ°ΠΊΠ²Π°Π», ΡΠ΅ Π½ΠΎΠ²ΠΈΡΡ Π΅ΡΠΈΠΊΠ΅Ρ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π½Π° ΠΊΠΎΠΌΠΈΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠΎΡΠΈ ΡΡΠ°ΡΠΈΡΡ Π΅ΡΠΈΠΊΠ΅Ρ);
- ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π·Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° Π±ΠΈΡΠΎΠ²ΠΈ ΠΊΠ°ΡΡΠΈ (Π΄ΠΈΡΠΊΠΎΠ²Π° ΡΡΡΡΠΊΡΡΡΠ° 'reachability bitmaps'), ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Ρ Π΄Π°Π½Π½ΠΈ Π·Π° Π½Π°Π±ΠΎΡΠΈ ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΈΡ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π±ΡΡΠ·ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΎΠ±Π΅ΠΊΡ. ΠΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΡΠ°ΡΠ°Π²Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ (git fetch).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
