Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ git clone
git clone
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ°Π·Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΊΠΎΠΏΠΈΡ Π² Git ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠΎΠΉ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ SVN. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ SVN, Π² Git Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ ΠΊΠΎΠΏΠΈΡΠΌΠΈ ΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ β Π²ΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ Git.
ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² Git ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² SVN. Π SVN ΡΠ°Π±ΠΎΡΠ° ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ, Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π² Git ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ. ΠΠΌΠ΅ΡΡΠΎ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ SVN Π² Git Π²Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ push ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΠ΅ ΠΈΡ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ pull.
ΠΡ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΎΡΠΎΠ±ΡΡ ΡΠΎΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Git. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΠ² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² Git ΠΊΠ°ΠΊ Β«ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉΒ», Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Git. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ΅Π±ΡΠ΅Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΡΡΠ΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ Π½Π΅ Π²ΡΡΡΠΎΠ΅Π½ Π² ΡΠ°ΠΌΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git clone Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΊΠ»ΠΎΠ½ ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ»ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠΎΠΌΠ°Π½Π΄Π° git clone ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git. ΠΠ½Π° ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ SVN checkout, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ: ΡΠ°ΠΊ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ Β«ΡΠ°Π±ΠΎΡΠ°Ρ ΠΊΠΎΠΏΠΈΡΒ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠΉ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ°ΠΏΠΊΡ
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈΠ· Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
! Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³Π°
ΠΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ°ΡΠΈΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠΊΠ° new_feature ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git. ΠΡΠ° ΠΎΠΏΡΠΈΡ Π½ΡΠΆΠ½Π° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠΈ HEAD Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ.
ΠΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
ΠΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠΏΡΠΈΠΉ git clone ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Git. Π ΡΡΠΎΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ.
URL-Π°Π΄ΡΠ΅ΡΠ° Π² Git
Π Git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ², Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git clone ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ, Π·Π΄Π΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Π² Git.
URL-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π² Git
Secure Shell (SSH) β ΡΡΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ·-Π·Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π½Π° ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅. ssh://[user@]host.xz[:port]/path/to/repo.git/
— GIT
Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Git. ΠΠΌΠ΅ΡΡΠ΅ Ρ Git ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅ΠΌΠΎΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΡΡ (9418). ΠΡΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΡ ΠΎΠΆ Π½Π° SSH, ΠΎΠ΄Π½Π°ΠΊΠΎ GIT ΠΠ ΠΠΠΠΠΠΠΠ’ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. git://host.xz[:port]/path/to/repo.git/
— HTTP
ΠΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π³ΠΈΠΏΠ΅ΡΡΠ΅ΠΊΡΡΠ°. ΠΡΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²ΠΎ ΠΡΠ΅ΠΌΠΈΡΠ½ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠ½Π΅. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HTML ΡΠ΅ΡΠ΅Π· ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ. Git ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ HTTP. http[s]://host.xz[:port]/path/to/repo.git/
Π Π΅Π·ΡΠΌΠ΅
1. ΠΠΎΠΌΠ°Π½Π΄Π° git clone ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
2. Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ»ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
3. Git ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ.
4. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ git clone ΡΠΌ. Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Git. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git clone Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎΡΠΎΠ²Ρ ΠΈΠ·ΡΡΠΈΡΡ Git?
ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΡΡΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ.
2. ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ GitΒΆ
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΒΆ
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΡ Ρ ΡΡΡΡΠΎΠΌ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠΊΡΠΈΠΏΡΠ°Ρ . ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ Π½Π° Π±Π°Π·Π΅ Git ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Cogito ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Git, Π° StGit ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Git Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠ΅ΠΉ ΠΏΠ°ΡΡΠ΅ΠΉ.
Git ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π±ΡΡΡΡΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΉ, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΠΊ ΠΈ Darcs, BitKeeper, Mercurial, SVK, Bazaar ΠΈ Monotone, Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΏΠΈΡ Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ; ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΡΡΡΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ.
Π£Π΄Π°Π»ΡΠ½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ Git ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ git-daemon, gitosis, SSH- ΠΈΠ»ΠΈ HTTP-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ. TCP-ΡΠ΅ΡΠ²ΠΈΡ git-daemon Π²Ρ ΠΎΠ΄ΠΈΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Git ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΡΡΠ΄Ρ Ρ SSH Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΌ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ΅ΡΠΎΠ΄ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ HTTP, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠ΄ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ².
ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌΒΆ
git clone β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ (ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ) ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΒΆ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎ Π²ΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» http:
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ myrepo :
ΠΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ssh:
Π£ git ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»:
ΠΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ svn ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» http:
-s β ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΏΠ°ΠΏΠΊΠΈ SVN (trunk, branches, tags)
git fetch ΠΈ git pull β Π·Π°Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΒΆ
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git fetch ΠΈ git pull.
git fetch β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ; ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ (remote tracking branch), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git merge.
git fetch /home/username/project β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote :
git fetch username-project β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° git pull ΡΡΠ°Π·Ρ Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ.
ΠΠ°Π±ΡΠ°ΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΠ°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ:
git push β Π²Π½ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉΒΆ
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push.
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ:
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ master Π² Π²Π΅ΡΠΊΡ experimental ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ:
Π ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ origin ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ experimental:
Π ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ master ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ origin (ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π²Π΅ΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master:
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΊΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ master ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ origin:
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ origin (master Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ develop)
ΠΠΎΠ±Π°Π²ΠΈΡΡ Π²Π΅ΡΠΊΡ test Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ origin, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Π²Π΅ΡΠΊΠΈ develop:
Π Π°Π±ΠΎΡΠ° Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌΒΆ
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΡΒΆ
git init β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
git add ΠΈ git rm β ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ:
Π²Π½Π΅ΡΡΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
ΠΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git rm :
Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ git, ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ txt ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ:
Π²Π½Π΅ΡΡΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
Π‘Π±ΡΠΎΡΠΈΡΡ Π²Π΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ
ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git reset :
ΡΠ±ΡΠΎΡΠΈΡΡ Π²Π΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ:
ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»:
ΠΠΎΠΌΠ°Π½Π΄Π° git reset ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π»ΡΡΠ΅
Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ.
git status β ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, git status ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΉΠ»Ρ Ρ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ
ΡΠ°ΠΉΠ»Ρ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ git.
git commit β ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠΎΠΌΠΌΠΈΡ β Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡΡΡ
ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΡΡΡΠΎ. Π ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
ΠΏΠΎΡΠ»Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π½Π°Π±ΡΠ°ΡΡ:
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΡ
ΡΠ°Π±ΠΎΡΡ Ρ git commit :
ΡΠΎΠ²Π΅ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ! Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΆΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅Π½ΠΎ.
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
Π²Π½Π΅ΡΠ΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
git reset β Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΎΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Β«ΠΆΠ΅ΡΡΠΊΠΈΠΉΒ» ΠΈΠ»ΠΈ Β«ΠΌΡΠ³ΠΊΠΈΠΉΒ»
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ (ΡΠΌ. Π²ΡΡΠ΅), git reset ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΠΈΡΡΠΎΡΠΈΠΈ. Π git Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π²ΡΡ Π²ΠΈΠ΄ΠΎΠ²: Β«ΠΌΡΠ³ΠΊΠΎΠ³ΠΎΒ»(soft reset) ΠΈ Β«ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎΒ» (hard reset).
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ HEAD^, ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Β». ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ ΠΎΠΏΠΈΡΠ°Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π₯ΡΡΠΈ, ΡΡΠ³ΠΈ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡΒ». Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, HEAD β ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π‘ΡΡΠ»ΠΊΠ° ORIG_HEAD ΠΏΠΎΡΠ»Π΅ Β«ΠΌΡΠ³ΠΊΠΎΠ³ΠΎΒ» ΡΠ΅Π·Π΅ΡΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ Π½Π° Π±ΠΎΠ»ΡΡΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²,
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΠΎΡΠΊΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ.
ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π·Π΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
.
git revert β ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. git revert ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΎΠΌ:
ΠΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ Ρ ΡΡ:
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΎΡΡ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
git log β ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ Π² ΡΠ΅Π»ΠΎΠΌ
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ
ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ, ΠΊΠΎΡΠ½ΡΠ²ΡΠΈΠΌΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π΅ΡΠΊΠΈ (ΠΎ Π²Π΅ΡΠΊΠ°Ρ
ΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ
ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΒ»):
ΠΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡΠΌ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΈ ΠΏΡΠ°Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ
—summary :
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
Π΅Π³ΠΎ ΠΈΠΌΡ (ΠΊΡΡΠ°ΡΠΈ, Π² ΠΌΠΎΠ΅ΠΉ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ git ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ,
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ » β » ΠΏΠ΅ΡΠ΅Π΄ Β«READMEΒ»):
ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ git Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΠΆΠ°Ρ:
ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π°ΡΠΈΠ½Π°Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° (Β«weeksΒ», Β«daysΒ», Β«hoursΒ», Β«sΒ»
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅):
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ:
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠ΅Π³ΠΎΠ².
ΠΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Π³Π° v1:
ΠΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° README, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Π³Π° v1:
ΠΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° README, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Π³Π° v1 ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠ΅Π³ΠΎΠΌ v2:
ΠΡΠ²Π΅ΡΡΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎ ΡΡΡΠΎΡΠΊΠ΅, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ· Ρ ΡΡΠ° (Π·Π΄Π΅ΡΡ β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ β Π΄Π°Π»ΡΡΠ΅):
ΠΠ°ΠΊΠΎΠ½ΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ , ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ , Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Π²ΡΠΎΡΠ°, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ, Π΄Π°ΡΠΎΠΉ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ:
git diff β ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΠΈ Ρ.Π΄.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡ:
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡ:
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ:
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Β«Π³ΠΎΠ»ΠΎΠ²ΡΒ» Π²Π΅ΡΠΎΠΊ:
ΠΈΠ»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ:
git show β ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² ΠΈΡΡΠΎΡΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git show :
git blame ΠΈ git annotate β ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
git grep β ΠΏΠΎΠΈΡΠΊ ΡΠ»ΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ
ΠΠΎΠΈΡΠΊ ΡΠ»ΠΎΠ²Π° tst Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅:
ΠΠΎΠ΄ΡΡΠΈΡΠ°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ tst Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅:
ΠΠΎΠΈΡΠΊ Π² ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π ΠΈ ΠΠΠ.
ΠΠ°ΠΉΡΠΈ ΡΡΡΠΎΠΊΠΈ, Π³Π΄Π΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ, ΠΈ Π²ΡΠΎΡΠΎΠ΅:
ΠΠ°ΠΉΡΠΈ ΡΡΡΠΎΠΊΠΈ, Π³Π΄Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΠ»ΠΎΠ²:
ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ΒΆ
git branch β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ
Π Π°Π±ΠΎΡΠ° Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ β ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π² git, Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:
ΠΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΎΡΠΌΠ΅ΡΠΈΠ² Π°ΠΊΡΠΈΠ²Π½ΡΡ:
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ new-branch:
Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ, Π΅ΡΠ»ΠΈ ΡΠ° Π±ΡΠ»Π° Π·Π°Π»ΠΈΡΠ° (merged) Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π² ΡΠ΅ΠΊΡΡΡΡ:
Π£Π΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΡΡΠ΅Π΄ΠΈ ΠΏΡΠ΅Π΄ΠΊΠΎΠ² ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ:
git checkout β ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΌΠ°Π½Π΄Π° git checkout ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎ) Π²Π΅ΡΠΎΠΊ:
Π‘ΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» (ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°ΡΠΈΡΡ ΠΈΠ· ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΈΠ΄Π°:
ΠΠ΅ΡΠ½ΡΡΡ somefile ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
ΠΠ΅ΡΠ½ΡΡΡ somefile ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π·Π°Π΄ ΠΏΠΎ Π²Π΅ΡΠΊΠ΅:
git merge β ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²)
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π² git ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π²Π΅ΡΠΊΡ new-feature:
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π° ΠΏΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ Π°-Π»Ρ svn; ΡΠ°ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΊΠ°ΠΊ Β«Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅Β» (unmerged). ΠΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠ΅Π½Ρ, ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ.
ΠΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π½Π΅ΡΠ΄Π°ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ:
Π‘ΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ°:
ΠΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ½ΠΈΠΌΠ°Ρ ΠΌΠ΅ΡΠΊΠΈ:
Π‘ΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ:
ΠΠΎΡ ΠΈ Π²ΡΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π±ΡΠ°ΡΡ (ΡΡΠΎ Π²Π΅ΡΠ½ΡΡ ΠΎΠ±Π΅ Π²Π΅ΡΠΊΠΈ Π² ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ):
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π±ΡΠ» ΡΠΎΠ²Π΅ΡΡΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git rebase β ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅Π» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡΠΈΠ» Π² Π½Π΅ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π΅Π΅ Π±ΡΠ»ΠΈ Π·Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ²Π΅ΡΡΠ°Π» Π² Π½Π΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ, master ΠΈ topic, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΠΌΠ°Π½Π΄Π° git rebase Π±Π΅ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ topic ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π²Π΅ΡΠΊΠΈ master.
ΠΠ°ΡΠΈΠ°Π½Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΈ ΠΊΡΠ΄Π° Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ:
Π½Π° master Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½Π°Ρ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π΅ΡΠΊΠ°:
git cherry-pick β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΡΠ»ΠΈ Π²Π΅Π΄Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊ Π΄Π΅ΡΠ΅Π²Ρ Π΄ΡΡΠ³ΠΎΠΉ (Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ).
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΡΡΠ°Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅:
ΠΡΠΎΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΒΆ
Π₯ΡΡ β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π git Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π»ΡΠ±ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ (ΡΠΎ Π΅ΡΡΡ Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ) Ρ ΡΡ ΠΈΠ· 40 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±ΡΠ΅ΠΊΡΡ β ΡΡΠΎ Π²ΡΠ΅: ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ°ΠΉΠ»Ρ, ΡΡΠ³ΠΈ, Π΄Π΅ΡΠ΅Π²ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ ΡΡ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ»Π°, ΡΠΎ ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΎΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Ρ ΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Ρ ΡΡ β ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Π°Π½Π°Π»ΠΎΠ³ ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ Subversion. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΎΡΠΎΠ±Π° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ:
Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π·Π° Π½ΠΎΠΌΠ΅ΡΠΎΠΌβ¦ ΡΠ°ΠΌΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠΌ:
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Git ΠΏΠΎΠΉΠΌΠ΅Ρ, ΠΎ ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΡΠ°ΠΊΠΈΠΌ Π½Π°ΡΠ°Π»ΠΎΠΌ Ρ ΡΡΠ°:
ΠΠ½ΠΎΠ³Π΄Π° Ρ Π²Π°ΡΠ°Π΅Ρ ΠΈ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
Π§ΠΈΡΠ°Π΅ΠΌ Π»ΠΎΠ³ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ:
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ ΡΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ β ΡΡΠ³ΠΈ.
git tag β ΡΡΠ³ΠΈ ΠΊΠ°ΠΊ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
Π’ΡΠ³ (tag) β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ; Ρ ΡΠ°Π½ΡΡΠΈΠΉ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ°, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π° ΡΠ°ΠΊΠΈΡ ΡΠ΅Π³Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π² git ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΡΡΠ³ΠΈΒ» (lightweight tags), ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ³ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ ΠΈΡΡΠΎΡΠΈΠΈ; ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ.
Π‘ΠΎΠ·Π΄Π°ΡΡ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉΒ» ΡΡΠ³, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ; Π΅ΡΠ»ΠΈ ΡΡΠ³ ΡΠΆΠ΅ Π΅ΡΡΡ, ΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ·Π΄Π°Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ:
ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ:
Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΡΠ³ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ ΡΠΆΠ΅ Π±ΡΠ»:
ΠΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ³ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²ΡΠΎΠ΄Π΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ Π½Π΅ΠΌΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΈΡΠ΅ΡΡ Β«ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π°Π³Β», ΡΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΡΡΠ³Ρ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Β«v1.0Β» Π±ΡΠ΄Π΅Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Β«ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, Π³ΠΎΡΠΎΠ²Π°Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΒ».
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΡΠ³ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°; Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π΄Π»Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΡΠ³, ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°Π² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ³ΠΎΠ² Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΡ Β» ΡΡΠ³ΠΎΠ².
ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ
ΠΠΌΠ΅ΡΡΠΎ ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ ΠΈ ΡΡΠ³ΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ β ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΡΡΠΌΠΎ ΠΊ ΠΏΡΠ΅Π΄ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π²Π΅ΡΠΊΠΈ master:
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Β«ΠΏΡΠΈΡΠΊΠΈΒ» ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠ΅Π΄ΠΊΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ:
Π½Π°ΠΉΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ Π²ΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΠΊΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² master; HEAD Π·Π΄Π΅ΡΡ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ:
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠΈΠ»ΡΠ΄ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠΊΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ:
ΡΡΠΎ ΠΏΡΠΈΠ²Π½Π΅Ρ Β«Π΄Π΅Π΄ΡΡΠΊΠ°Β» Π½ΡΠ½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΒΆ
; git count-objects : ΠΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½ΠΎ ΠΈ ΠΎΠ±ΡΡΠΌ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
; git gc : ΠΠ΅ΡΠ΅ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
Π Π΅ΡΠ΅ΠΏΡΡΒΆ
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅
ΠΠΌΠΏΠΎΡΡ svn ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Git-ΡΠ΅ΡΠ²Π΅Ρ
Git Wizardry
1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅ Ρ ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π² ΠΎΠ±ΡΠΈΡ
ΡΠ΅ΡΡΠ°Ρ
ΡΡΠΈΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ
ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ git ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Π½Π° ΠΎΡΠ»ΠΈΡΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ
ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π‘ΠΠ. Π¦Π΅Π»ΡΡ Π±ΡΠ»ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΡΠ°
ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π±Π΅Π· ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΠ°Π½Π½ΡΠΉ ΠΆΠ΅ ΡΠΎΠΏΠΈΠΊ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠ°Π±ΠΎΡΡ Ρ git, Π½Π΅ΡΡΠΎ
ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΌΠ΅ΠΆΠ΄Ρ tutorial ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΊΠΎΠΉ, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ
ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠ΅ Π²ΡΡΠ΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΡΡΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅
ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ git, ΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠΈΠ΅ Π΄Π»Ρ Π‘ΠΠ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΠΈ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄.
2 Π Π°Π±ΠΎΡΠ° Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ
Π‘ΠΈΠ»Π° Π»ΡΠ±ΡΡ
ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ β Π² Π½Π°Π»ΠΈΡΠΈΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ Π»ΠΈΡΠ½ΡΡ ΡΡ
Π΅ΠΌΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅ ΠΈ
ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ
.
2.1 ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ β ΡΠ΅, Π±Π΅Π· ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅.
2.1.1 git init β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ
ΠΠΎΠΌΠ°Π½Π΄Π° git init ΡΠΎΠ·Π΄Π°Π΅Ρ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
.git, Π³Π΄Π΅ ΠΈ Π±ΡΠ΄Π΅Ρ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²,
ΡΠ΅Π³Π°Ρ
β Ρ
ΠΎΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ β ΠΊΠΎΠΌΠ°Π½Π΄Π° git clone, Π½ΠΎ ΠΎ Π½Π΅ΠΉ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅.
2.1.2 git add ΠΈ git rm β ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ β ΠΊΠΎΠΌΠ°Π½Π΄Π° git add. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½Π΅ΡΡΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡ β Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠΉΠ΄ΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
git add EDITEDFILE β ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π»ΠΈΠ±ΠΎ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ
ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ.
git add. β Π²Π½Π΅ΡΡΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
ΠΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ Π΄Π΅ΡΠ΅Π²Π° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git rm:
git rm FILE1 FILE2 β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
git rm Documentation/\*.txt β Ρ
ΠΎΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ git,
ΡΠ΄Π°Π»ΡΡΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ txt ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ.
Π‘Π±ΡΠΎΡΠΈΡΡ Π²Π΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ
ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git reset:
git reset β ΡΠ±ΡΠΎΡΠΈΡΡ Π½Π°ΡΠΈΠ³ Π²Π΅ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ.
git reset β EDITEDFILE β ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΠΎΠΌΠ°Π½Π΄Π° git reset ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π»ΡΡΠ΅
Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π΅Π½ΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ.
2.1.3 git status β ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
ΠΠΎΠΌΠ°Π½Π΄Π° git status, ΠΏΠΎΠΆΠ°Π»ΡΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΠΌΠΎΠΉ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π½Π°ΡΡΠ΄Ρ Ρ
ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ. ΠΠ½Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΠΎ Π²ΡΠ΅Ρ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
,
Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ
Π² Π΄Π΅ΡΠ΅Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΉ
Π²Π΅ΡΠΊΠΈ; ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ Π½Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅
ΡΠ°ΠΉΠ»Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΊΡΠ°ΠΉΠ½Π΅ ΠΏΡΠΎΡΡΠΎ:
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, git status ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ Ρ Π½Π΅ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ
ΡΠ°ΠΉΠ»Ρ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ git.
2.1.4 git commit β ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠΎΠΌΠΌΠΈΡΡ β Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡΡ
ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΡΡΡΠΎ. Π ΡΠ°ΠΌΠΎΠΌ ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ
ΠΏΠΎΡΠ»Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ Π½Π°Π±ΡΠ°ΡΡ:
ΠΡΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π½Π΅ ΠΏΡΡΡΠΎΠΉ, ΡΠΎ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΏΡΠΎΡΡΡ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΠΎΡΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
edit(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Ubuntu ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅Π½ΡΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ nano, Ρ
ΠΌΠ΅Π½Ρ ΠΆΠ΅ β emacs). Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌΡΡ, ΠΈ Π²ΡΠ°Π»Π°! ΠΠΎΠΌΠΌΠΈΡ Π³ΠΎΡΠΎΠ².
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ git commit:
git commit FILENAME β Π²Π½Π΅ΡΠ΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
2.1.5 git reset β Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΎΡΠΊΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Β«ΠΆΠ΅ΡΡΠΊΠΈΠΉΒ» ΠΈΠ»ΠΈ Β«ΠΌΡΠ³ΠΊΠΈΠΉΒ»
ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ (ΡΠΌ. Π²ΡΡΠ΅), git reset ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅
ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΠΈΡΡΠΎΡΠΈΠΈ. Π git Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π²ΡΡ
Π²ΠΈΠ΄ΠΎΠ²: Β«ΠΌΡΠ³ΠΊΠΎΠ³ΠΎΒ»(soft reset) ΠΈ Β«ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎΒ» (hard reset).
Β«ΠΡΠ³ΠΊΠΈΠΉΒ» (Ρ ΠΊΠ»ΡΡΠΎΠΌ «—soft») ΡΠ΅Π·Π΅Ρ ΠΎΡΡΠ°Π²ΠΈΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ Π²Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. ΠΠ½ΡΠΌΠΈ
ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΠΈΠ»ΠΈ
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ Π½Π΅ΠΌΡ, ΡΠΎ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ HEAD^, ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Β«ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΠΊΡ
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Β». ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅ΠΉ ΠΎΠΏΠΈΡΠ°Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ
Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«Π₯ΡΡΠΈ, ΡΡΠ³ΠΈ, ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡΒ». Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ,
HEAD β ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π‘ΡΡΠ»ΠΊΠ° ORIG_HEAD ΠΏΠΎΡΠ»Π΅ Β«ΠΌΡΠ³ΠΊΠΎΠ³ΠΎΒ» ΡΠ΅Π·Π΅ΡΠ°
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ Π½Π° Π±ΠΎΠ»ΡΡΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²,
1 β Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΈΠΊΡΠΎ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡ ΡΡΠΎΡ ΠΏΠΎΠ·ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
3 β Π²Π΅ΡΠ½Π΅Π΅, ΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΈΠΊΡΠΎ. ΠΠΈΠΊΠΎΠ³Π΄Π°.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΡΠΎΡΠΊΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ.
ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠΊΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠ΅Π·Π΅ΡΠ° Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΠ°Π·Π΄Π΅Π»Π°Ρ
.
2.1.6 git revert β ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. Git revert ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
git revert config-modify-tag β ΠΎΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ ΡΠ΅Π³ΠΎΠΌ.
git revert 12abacd β ΠΎΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ Ρ ΡΡ.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΎΡΡ ΠΎΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
2.1.7 git log β ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΡ
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ²ΡΠΈΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ»; ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΎΡΡΠ΅Π·ΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git log.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌ
ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ, ΠΊΠΎΡΠ½ΡΠ²ΡΠΈΠΌΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²Π΅ΡΠΊΠΈ (ΠΎ Π²Π΅ΡΠΊΠ°Ρ
ΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠΈ
ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΠΆΠ΅, Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡΒ»):
ΠΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡΠΌ, ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΈ ΠΏΡΠ°Π²Π°ΠΌ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΊΠ»ΡΡ
—summary:
ΠΠ»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
Π΅Π³ΠΎ ΠΈΠΌΡ (ΠΊΡΡΠ°ΡΠΈ, Π² ΠΌΠΎΠ΅ΠΉ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ git ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ,
ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ » β » ΠΏΠ΅ΡΠ΅Π΄ Β«READMEΒ»):
ΠΈΠ»ΠΈ, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ git Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΠΆΠ°Ρ:
ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ, Π½Π°ΡΠΈΠ½Π°Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° (Β«weeksΒ», Β«daysΒ», Β«hoursΒ», Β«sΒ»
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅):
ΠΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠ΅Π³ΠΎΠ²:
git log v1β¦ β Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅Π³Π° v1.
git log v1β¦ README β Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° README, Π½Π°ΡΠΈΠ½Π°Ρ Ρ
ΡΠ΅Π³Π° v1.
git log v1..v2 README β Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° README, Π½Π°ΡΠΈΠ½Π°Ρ Ρ
ΡΠ΅Π³Π° v1 ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ ΡΠ΅Π³ΠΎΠΌ v2.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ°, Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ
ΡΠ°Π·Π΄Π΅Π»Π΅ Π½ΠΈΠΆΠ΅.
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ:
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΠΎ git log ΠΈΠ· Git Community Book
ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²ΠΊΠ΅. ΠΡΠ°ΡΠΈΠ²ΡΠΉ ASCII-Π³ΡΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ°
—graph.
2.1.8 git diff β ΠΎΡΠ»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°; ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ; ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
Π‘Π²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git diff,
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅: Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ (ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΉ):
git diff β ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡ.
git diff HEAD β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
git diff HEAD^ β ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Β«Π³ΠΎΠ»ΠΎΠ²ΡΒ» Π²Π΅ΡΠΎΠΊ:
git diff master..experimental
ΠΡ ΠΈΠ»ΠΈ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ:
git diff experimental
2.1.9 git show β ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git
show:
git show COMMIT_TAG
2.1.10 git blame ΠΈ git annotate β Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎΠΌΠΎΠ³Π°ΡΡΠΈΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π» ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ
ΠΊΠΎΠ΄. Π£Π΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git blame, Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ ΠΏΠΎΡΡΡΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΠΊΠΎΡΠ½ΡΠ²ΡΠ΅ΠΌΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΈΠΌΡ Π°Π²ΡΠΎΡΠ° ΠΈ Ρ
ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ:
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git annotate, Π²ΡΠ²ΠΎΠ΄ΡΡΠ°Ρ ΠΈ ΡΡΡΠΎΠΊΠΈ, ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ
ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
, ΠΈΡ
ΠΊΠΎΡΠ½ΡΠ²ΡΠΈΡ
ΡΡ:
git annotate README
2.1.11 git grep β ΠΏΠΎΠΈΡΠΊ ΡΠ»ΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ
git grep, Π² ΡΠ΅Π»ΠΎΠΌ, ΠΏΡΠΎΡΡΠΎ Π΄ΡΠ±Π»ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΠΎΠΉ ΡΠ½ΠΈΠΊΡΠΎΠ²ΠΎΠΉ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΈΡ
ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΡ ΠΈΡΠΊΠ°ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠΎ
Π±ΡΠ²Π°Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ:
git grep tst β ΠΏΠΎΠΈΡΠΊ ΡΠ»ΠΎΠ²Π° tst Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
git grep tst v1 β ΠΏΠΎΠΈΡΠΊ Π² ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π ΠΈ ΠΠΠ:
2.2 ΠΠ΅ΡΠ²Π»Π΅Π½ΠΈΠ΅
ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ β ΡΠ΅ΡΠ΄ΡΠ΅ ΠΈ Π΄ΡΡΠ° git, ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ
ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
2.2.1 git branch β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ
Π Π°Π±ΠΎΡΠ° Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ β ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠ°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π² git, Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ
ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅:
git branch β ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΎΡΠΌΠ΅ΡΠΈΠ² Π°ΠΊΡΠΈΠ²Π½ΡΡ.
git branch new-branch β ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ new-branch.
2.2.2 git checkout β ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠΎΠΌΠ°Π½Π΄Π° git checkout ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ (Π΅ΡΠ»ΠΈ
ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎ) Π²Π΅ΡΠΎΠΊ:
ΠΠ΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» (ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°ΡΠΈΡΡ ΠΈΠ· ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΠΈΠ΄Π°:
git checkout somefile β Π²Π΅ΡΠ½ΡΡΡ somefile ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
git checkout HEAD
2 somefile β Π²Π΅ΡΠ½ΡΡΡ somefile ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π·Π°Π΄ ΠΏΠΎ Π²Π΅ΡΠΊΠ΅.
2.2.3 git merge β ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ (ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²).
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ, Π² git
ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊ
ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
git merge new-feature β ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π²Π΅ΡΠΊΡ new-feature.
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, Π° ΠΏΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ
ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ Π° Π»Ρ svn; ΡΠ°ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΊΠ°ΠΊ
Β«Π½Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅Β» (unmerged). ΠΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ ΠΏΠΎΠΊΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠ΅Π½Ρ, ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ
Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²ΠΎΠ·Π½ΠΈΠΊ Π² ΡΠ°ΠΉΠ»Π΅ TROUBLE, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π² git status:
git merge experiment β ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° Π½Π΅ΡΠ΄Π°ΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ.
git status β ΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠ°.
edit TROUBLE β ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
git add. β ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ½ΠΈΠΌΠ°Ρ ΠΌΠ΅ΡΠΊΠΈ.
git commit β ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠΎΡ ΠΈ Π²ΡΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²Ρ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ
ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°Π±ΡΠ°ΡΡ:
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π±ΡΠ» ΡΠΎΠ²Π΅ΡΡΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
2.2.4 git rebase β ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π°Π²Π΅Π» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΠ²Π΅ΡΡΠΈΠ» Π² Π½Π΅ΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ
ΠΏΡΠΈΡΠΈΠ½Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π΅Π΅ Π±ΡΠ»ΠΈ
Π·Π°Π»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°; Π»ΠΈΠ±ΠΎ ΡΠ°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ²Π΅ΡΡΠ°Π» Π² Π½Π΅ΠΉ
ΠΊΠΎΠΌΠΌΠΈΡΡ.
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ git merge. ΠΠΎ ΡΠΎΠ³Π΄Π° ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠ° Π»ΠΈΠ½ΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π² ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
, Π³Π΄Π΅ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ
ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΠΈΠΌΠ΅Π΅ΡΡΡ Π΄Π²Π΅ Π²Π΅ΡΠΊΠΈ, master ΠΈ ΡΠΎΠΏΠΈΠΊ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ»ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° git rebase Π±Π΅ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ topic ΠΈ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅Ρ ΠΈΡ
Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π²Π΅ΡΠΊΠΈ
master:
2.2.5 git cherry-pick β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΡΠ»ΠΈ Π²Π΅Π΄Π΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ Π²Π΅ΡΠΊΠ°ΠΌΠΈ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊ Π΄Π΅ΡΠ΅Π²Ρ Π΄ΡΡΠ³ΠΎΠΉ (Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ).
git cherry-pick BUG_FIX_TAG β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π±ΡΠ΄ΡΡ
ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΊ Π΄Π΅ΡΠ΅Π²Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΡΡΠ°Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ
Π²Π΅ΡΠΊΠ΅.
2.3 ΠΡΠΎΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ git Π±ΡΠ»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅: ΡΡΠ³. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ
Π΄Π°Π»ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΠ½Π΅Π½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Ρ
ΡΡΠ°Ρ
, ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅; ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠΏΠΎΡΠΎΠ±
ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ.
2.3.1 Π₯ΡΡ β ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Π°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π git Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π»ΡΠ±ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ (ΡΠΎ Π΅ΡΡΡ Ρ
ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ) Ρ
ΡΡ ΠΈΠ· 40 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ
Ρ
ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ±ΡΠ΅ΠΊΡΡ β ΡΡΠΎ Π²ΡΠ΅: ΠΊΠΎΠΌΠΌΠΈΡΡ,
ΡΠ°ΠΉΠ»Ρ, ΡΡΠ³ΠΈ, Π΄Π΅ΡΠ΅Π²ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ
ΡΡ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΉΠ»Π°,
ΡΠΎ ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ β Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π΅ ΡΡΡΠΎΠΊΠΈ
Π² ΡΠΎΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
ΠΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Ρ
ΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π ΡΡΠΎΠΌ
ΡΠΌΡΡΠ»Π΅ Ρ
ΡΡ β ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ Π°Π½Π°Π»ΠΎΠ³ ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ Subversion. ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ
ΡΡΠ΅ΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΏΠΎΡΠΎΠ±Π° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ:
git diff f292ef5d2b2f6312bc45ae49c2dc14588eef8da2 β Π½Π°ΠΉΡΠΈ ΡΠ°Π·Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ
ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π·Π° Π½ΠΎΠΌΠ΅ΡΠΎΠΌβ¦ ΠΡ ΡΠ°ΠΌΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠΌ.
git diff f292ef5 β ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Git
ΠΏΠΎΠΉΠΌΠ΅Ρ, ΠΎ ΠΊΠ°ΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΡΠ°ΠΊΠΈΠΌ
Π½Π°ΡΠ°Π»ΠΎΠΌ Ρ
ΡΡΠ°.
git diff f292 β ΠΈΠ½ΠΎΠ³Π΄Π° Ρ Π²Π°ΡΠ°Π΅Ρ ΠΈ ΡΠ΅ΡΡΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
git log febc32. f292 β ΡΠΈΡΠ°Π΅ΠΌ Π»ΠΎΠ³ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΠΎ ΠΊΠΎΠΌΠΌΠΈΡ.
Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Ρ
ΡΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ°ΡΠΈΠ½Π΅, ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ»ΠΈ
Π²Π²Π΅Π΄Π΅Π½Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ β ΡΡΠ³ΠΈ.
2.3.2 git tag β ΡΡΠ³ΠΈ ΠΊΠ°ΠΊ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
Π’ΡΠ³ (tag) β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ; Ρ
ΡΠ°Π½ΡΡΠΈΠΉ ΡΡΡΠ»ΠΊΡ Π½Π° ΡΠ°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈΠΌΡ
Π°Π²ΡΠΎΡΠ°, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ
ΠΎΡΡΠ°Π²Π»ΡΡΡ Π½Π° ΡΠ°ΠΊΠΈΡ
ΡΠ΅Π³Π°Ρ
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ Π² git ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ΡΡΠ³ΠΈΒ» (Β«lightweight
tagsΒ»), ΡΠΎΡΡΠΎΡΡΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ. Π’Π°ΠΊΠΈΠ΅ ΡΡΠ³ΠΈ, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ ΠΈΡΡΠΎΡΠΈΠΈ; ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΡ
ΠΎΡΠ΅Π½Ρ Π»Π΅Π³ΠΊΠΎ:
git tag stable-1 β ΡΠΎΠ·Π΄Π°ΡΡ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠΉΒ» ΡΡΠ³, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. ΠΡΠ»ΠΈ ΡΡΠ³ ΡΠΆΠ΅ Π΅ΡΡΡ, ΡΠΎ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ·Π΄Π°Π½ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
git tag stable-2 f292ef5 β ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ³Π° Π΅Π³ΠΎ ΠΈΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Ρ
ΡΡΠ° Π² Π»ΡΠ±ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
Π²ΡΠΎΠ΄Π΅ git diff, git log ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅:
git diff stable-1.1. stable-1
ΠΠ±ΡΡΠ½ΡΠ΅ ΡΡΠ³ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ
ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π²ΡΠΎΠ΄Π΅ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΊ Π½Π΅ΠΌΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ Π²
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΈΡΠ΅ΡΡ Β«ΠΈΡΠΏΡΠ°Π²ΠΈΠ» ΡΠ°ΠΊΠΎΠΉ-ΡΠΎ Π±Π°Π³Β», ΡΠΎ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΡΡΠ³Ρ ΠΏΠΎ
ΠΈΠΌΠ΅Π½ΠΈ Β«v1.0Β» Π±ΡΠ΄Π΅Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ Β«ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ, Π³ΠΎΡΠΎΠ²Π°Ρ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡΒ»:
ΠΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ, ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΎΠ±ΡΡΠ½ΡΡ
ΡΡΠ³ΠΎΠ² Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ Β«Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΡ
Β» ΡΡΠ³ΠΎΠ².
2.3.3 ΠΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ
ΠΠΌΠ΅ΡΡΠΎ ΡΠ΅Π²ΠΈΠ·ΠΈΠΉ ΠΈ ΡΡΠ³ΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½
ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ β ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΏΡΡΠΌΠΎ ΠΊ ΠΏΡΠ΅Π΄ΠΊΡ
ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π²Π΅ΡΠΊΠΈ master:
ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Β«ΠΏΡΠΈΡΠΊΠΈΒ» ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΈΡΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΡΠ΅Π΄ΠΊΠ°ΠΌ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ:
git diff HEAD^2 β Π½Π°ΠΉΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΎ Π²ΡΠΎΡΡΠΌ ΠΏΡΠ΅Π΄ΠΊΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ
ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² master. HEAD Π·Π΄Π΅ΡΡ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠΈΠ»ΡΠ΄ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎ Π² ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠΊΠΈ
Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ³ΡΡΠ·ΠΈΡΡΡΡ:
git diff master^^ β ΡΡΠΎ ΠΏΡΠΈΠ²Π½Π΅Ρ Β«Π΄Π΅Π΄ΡΡΠΊΠ°Β» Π½ΡΠ½Π΅ΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ Π΄ΠΎ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Ρ
ΠΎΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ
Π²ΠΈΠ΄Π΅ΡΡ Π² ΡΠ²ΠΎΠ΄ΠΊΠ΅ git status. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠ², Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΡΠΎΡΠΈΠΉ ΠΌΡΡΠΎΡ.
ΠΠ°ΡΡΠ°Π²ΠΈΡΡ git status ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ·Π΄Π°Π² Π² ΠΊΠΎΡΠ½Π΅ ΠΈΠ»ΠΈ Π³Π»ΡΠ±ΠΆΠ΅ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ
(Π΅ΡΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ) ΡΠ°ΠΉΠ»
.gitignore. Π ΡΡΠΈΡ
ΡΠ°ΠΉΠ»Π°Ρ
ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
#Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΈΠΊΠΈ ΠΈ Π°ΡΡ ΠΈΠ²Ρ
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ
ΠΈΠ· ΡΠΏΡΠ°Π²ΠΊΠΈ git help gitignore.
3 Β«ΠΠΌΠ΅ΡΡΠ΅ ΠΌΡ β ΡΠΈΠ»Π°Β», ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ
ΠΌΠ΅ΡΠ΅ Π΄Π²ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ. ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄ΡΡ
ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ΡΡ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ β ΡΠ°Π±ΠΎΡΡ.
3.1 Π£Π΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ (remote tracking branches)
ΠΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π·Π΄Π΅ΡΡ β ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ. Π£Π΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ
Π²Π΅ΡΠΊΠ΅ (ΡΠ°ΡΠ΅ master) Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ΄Π½Π° ΡΠ°ΠΊΠ°Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ
ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ; Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ
ΡΠ°Π±ΠΎΡΠΎΠΉ, Π±ΡΠ΄ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ (ΠΎΠ±ΡΡΠ½ΠΎ
Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«originΒ»).
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
3.2 git clone β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ (ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ) ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΏΠΈΡ
ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎ Π²ΡΠ΅ΠΉ Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ:
git clone /home/username/project myrepo β ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ
Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ myrepo.
git clone ssh://user@somehost:port/
user/repository β ΠΊΠ»ΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ssh (Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠΈ Ρ ΡΠ΅Π±Ρ Π½Π° ΠΌΠ°ΡΠΈΠ½Π΅
ΡΠΊΠΊΠ°ΡΠ½Ρ ssh).
git clone git://user@somehost:port/
user/repository/project.git/ β Ρ git ΠΈΠΌΠ΅Π΅ΡΡΡ
ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ».
3.3 git fetch ΠΈ git pull β Π·Π°Π±ΠΈΡΠ°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ (ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ)
ΠΠ»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git fetch ΠΈ
git pull.
git fetch β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ,
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ; ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΠΏΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ (remote tracking branch), ΠΏΠΎΡΠ»Π΅
ΡΠ΅Π³ΠΎ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git merge.
git fetch /home/username/project β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git remote:
git remote add username-project /home/username/project
git fetch username-project β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΌΡ
ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git diff, ΠΈΠ· Π½Π°Π΄ΠΎ
ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ:
git merge username-project/master
ΠΠΎΠΌΠ°Π½Π΄Π° git pull ΡΡΠ°Π·Ρ Π·Π°Π±ΠΈΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ:
git pull β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΏΠΎ
ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
git pull username-project β Π·Π°Π±ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git pull.
3.4 git push β Π²Π½ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ (ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ)
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ,
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ (ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git push:
git push β ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ
ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
git push ssh://yourserver.com/
you/proj.git master:experimental β ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΈΠ· Π²Π΅ΡΠΊΠΈ master Π² Π²Π΅ΡΠΊΡ experimental ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ.
git push origin :experimental β Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΈ origin ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ experimental.
git push origin master:master β Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ master ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ origin (ΡΠΈΠ½ΠΎΠ½ΠΈΠΌ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π²Π΅ΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master.
4 git-ΠΎ-Π΄Π΅Π½Ρ
Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π½Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ½ΡΡ
ΠΈ ΡΡΡΡ
ΠΌΠ΅Π½ΡΡΠ΅ Π½Π΅ΠΎΠ±ΡΡΠ½ΡΡ
Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ git ΡΠΈΡΡΠ°ΡΠΈΠΉ.
4.1 ΠΠ±ΡΡΠ½ΡΠΉ workflow ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ
Git ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±ΡΡΠ°ΠΉΠ½ΠΎΠΉ Π»Π΅Π³ΠΊΠΎΡΡΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ
ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ, Π½ΠΎ ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ
ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠΈΠΊΠ» β Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ β ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° git Π½Π°Π΄
ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ:
ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ? ΠΠ°ΡΠ΅ΠΌ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ? Π₯ΠΎΡΡ Π±Ρ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠΎΠΌΡ,
ΡΡΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ: ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ
ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ (Π²Π΅ΡΠΊΠ°ΠΌΠΈ); ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π΅ΡΡΡ Β«ΡΠΈΡΡΠΎΠ²ΠΈΠΊΒ» β Π²Π΅ΡΠΊΠ°
master; ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΌΠ΅Π»ΡΡΠ΅ ΠΈ ΡΠΎΡΠ½Π΅Π΅.
4.2 Workflow ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΡ
Π½Π°ΠΏΠ°ΡΠ½ΠΈΠΊΠΎΠ² ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ, ΡΡΠΎΠ±Ρ Π·Π°Π½ΡΡΡΡΡ Π½Π΅ΠΊΠΈΠΌ ΠΎΠ±ΡΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. ΠΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΌΠ°Ρ
ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ Π΄Π»Ρ git ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠ±ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ?
you/proj.git
β¦ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΎΡΠ»ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΡΠ°ΠΊ, ΠΏΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π΅ΠΌ (1) ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠΏΠΈΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ (ΠΏΠΎ
ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΎΠ΄Π΅ git pull ΠΈ git push Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½ΠΈΠΌ). Β«ΠΡΡΡΠ³ΠΈΠ²Π°Π΅ΠΌΒ»
ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ (2); ΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ(3); ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ ΠΈ
ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² Π½Π΅Π΅ (4); ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΠΌ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΈΠ· Π½ΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡ (5); ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠ²Ρ (6), ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ Π΅Π΅ (7); ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ
ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ Π²Π΅ΡΠΊΠΎΠΉ bad-feature(8) ΠΈ, ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ² ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΠ² ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π΄Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ
ΡΠ»ΠΈΡΠ½ΠΈΡ (9).
ΠΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ(10), Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΡ ΠΈ Ρ ΡΠΆΠ°ΡΠΎΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ Π²Π°Π»ΠΈΡΡΡ Π½Π° Π±ΠΎΠ»ΡΡΠ΅ΠΉ
ΡΠ°ΡΡΠΈ ΡΠ΅ΡΡΠΎΠ².
Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ³Π½Π°ΡΡ ΠΈ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π² ΠΌΠΎΠΌΠ΅Π½Ρ
ΡΠ»ΠΈΡΠ½ΠΈΡ (ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ 8 ΠΈ 9); ΡΠΎΠ³Π΄Π° Π±Ρ Ρ
Π²Π°ΡΠΈΠ»ΠΎ Β«ΠΌΡΠ³ΠΊΠΎΠ³ΠΎΒ» ΡΠ΅Π·Π΅ΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Β«ΠΆΠ΅ΡΡΠΊΠΈΠΉΒ» (11) ΡΠ±ΡΠΎΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ,
Π²Π΅ΡΠΊΠΈ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π² Π½Π΅ΡΠ΄Π°ΡΠ½ΡΡ
Π²Π΅ΡΠΊΡ (12), Π²Π½ΠΎΡΠΈΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ Π²Π΅ΡΠΊΡ (13). Π‘ΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌ
ΠΊΠΎΠΌΠΌΠΈΡ (14); ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠΌ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ(15), ΠΎΠΏΡΡΡ Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΠΌ (16). ΠΠ° ΡΡΠΎΡ ΡΠ°Π·
Π±Π΅ΡΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (17), Π·Π°ΠΊΠΈΠ΄ΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠΉ
(18) ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠΊΡ (19). ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ Π½ΠΎΡΡΠ±ΡΠΊ, ΠΎΠ΄Π΅Π²Π°Π΅ΠΌΡΡ ΠΈ ΠΈΠ΄Π΅ΠΌ
Π΄ΠΎΠΌΠΎΠΉ ΠΏΠΎΠ΄ ΡΡΡΠΎ.
5 ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠΎΠΏΠΈΠΊΠ΅ Π½Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΆΠ½ΡΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π²ΡΠΎΠ΄Π΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΡ, ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ IDE,
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SSH ΠΏΠΎΠ΄ ΠΠΈΠ½ΡΠΊΡ ΠΈ Windows; ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ, ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ
Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π» Β«git-ΠΎ-Π΄Π΅Π½ΡΒ».
UPD: Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ git Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅Π², ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ; ΠΏΡΠΈΡΠ΅ΠΌ Π² ΡΡΠΎΠΉ Π·Π°ΠΌΠ΅ΡΠΊΠ΅ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡΡΡ Π½ΠΈΠΊΠ°ΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠΆΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠ°ΡΠΈΠ΅ΠΌ; Π΅Π³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΎ.
ΠΡΠΎ Π²ΡΠ΅ Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΎΠ±ΠΈΡΠ°Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠΎΠΏΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΡ ΠΈ Π²ΡΠΊΠΈΠ½Ρ ΡΡΠ΄Π° ΡΠ΅ΡΠ΅Π· Π½Π΅Π΄Π΅Π»Ρ-ΠΏΠΎΠ»ΡΠΎΡΡ.