π ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°: ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ Git
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
git revert HEAD
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎ Π΅Π³ΠΎ Ρ ΡΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
git revert <commit_hash>
ΠΠΎΠΌΠ°Π½Π΄Π° git revert
ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠΈΠ²Π΅Ρ, ΡΡΡΠ΄Π΅Π½Ρ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git.
Git - ΡΡΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ½ΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² Git Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
Π‘ΠΏΠΎΡΠΎΠ± 1: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
ΠΠΎΠΌΠ°Π½Π΄Π° git revert ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΠΎΠ·Π΄Π°Π² Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ.
ΠΡΠΈΠΌΠ΅Ρ:
$ git revert <commit>
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ <commit> - ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. Git ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π‘ΠΏΠΎΡΠΎΠ± 2: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΠΠΎΠΌΠ°Π½Π΄Π° git reset ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»ΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
$ git reset <commit>
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ <commit> - ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Git ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ Π³ΠΎΠ»ΠΎΠ²ΠΊΡ Π²Π΅ΡΠΊΠΈ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
Π‘ΠΏΠΎΡΠΎΠ± 3: ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
ΠΠΎΠΌΠ°Π½Π΄Π° git checkout ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ°ΠΉΠ» ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΡΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ:
$ git checkout <commit> -- <file>
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ <commit> - ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° <file> - ΡΡΠΎ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. Git Π²Π΅ΡΠ½Π΅Ρ ΡΠ°ΠΉΠ» ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset ΠΈ git checkout ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ .
Π£Π΄Π°ΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Git! ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ Π»ΡΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ.