Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° 505 ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΈΠ·Π³ΠΎΡΠ²Π΅Π½ΠΈ Ρ ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π½Π° 77 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ 26 ΡΠ° ΡΡΠ°ΡΡΠ²Π°Π»ΠΈ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ. ΠΡΠ½ΠΎΠ²Π΅Π½
- ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ "git switch" ΠΈ "git restore" ΡΠ΅ Π²ΡΠ²Π΅ΠΆΠ΄Π°Ρ Π·Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° "git checkout", ΠΊΠ°ΡΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ (ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅) ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ("git checkout $commit - $filename") ΠΈΠ»ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π² Π·ΠΎΠ½Π°ΡΠ° Π·Π° Π΅ΡΠ°ΠΏ (ββ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 Π²Π΅ΡΠ΅ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ;
- ΠΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½ΠΈΡ ΠΊΠ΅Ρ Π½Π° Π³ΡΠ°ΡΠΈΠΊΠ°ΡΠ° Π½Π° Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π΅ (core.commitGraph), Π²ΡΠ²Π΅Π΄Π΅Π½Π° Π²ΡΠ² 2.18, Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½Π°. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π°ΠΏΡΠ°Π²ΠΈ git for-each-ref ΠΏΠΎ-Π±ΡΡΠ· ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±Π»ΠΎΠ½ΠΈ ΠΈ Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° auto-gc Π² βgit fetch βmultipleβ;
- "git branch --list" ΡΠ΅Π³Π° Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΎΡΠ΄Π΅Π»Π΅Π½Π° HEAD Π² ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ Π½Π° ΡΠΏΠΈΡΡΠΊΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π»ΠΎΠΊΠ°Π»Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru