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