π ΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΌΠ΅ΡΠΆ Π² git: ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ ΡΠΎΠ²Π΅ΡΡ
ΠΠ»Ρ ΠΎΡΠΊΠ°ΡΠ° ΠΌΠ΅ΡΠΆΠ° Π² Git Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΠΌΠ΅ΡΠΆ-ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
git revert -m 1 <commit_id>
ΠΠ΄Π΅ -m 1
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ.
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ <commit_id>
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
Git ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΆ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² Π΄ΡΡΠ³ΡΡ. ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΌΠ΅ΡΠΆ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΎΠ½ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ? ΠΠ΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΠ΅ΡΡ, Ρ Git Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΊΠ°ΡΠ° ΠΌΠ΅ΡΠΆΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π±Π΅Π· Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ.
ΠΠΎΡ ΡΠ°Π³ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΌΠ΅ΡΠΆ:
1. ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ
git checkout Π½Π°Π·Π²Π°Π½ΠΈΠ΅_Π²Π΅ΡΠΊΠΈ
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΠΌΠ΅ΡΠΆ. ΠΠ°Π·Π²Π°Π½ΠΈΠ΅_Π²Π΅ΡΠΊΠΈ - ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΈ ΠΎΡΠΊΡΠ΄Π° Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ ΠΌΠ΅ΡΠΆ.
2. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Ρ Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠ΅ΡΠΆΠ°
git log
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠ΅ΡΠΆΠ°. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Ρ
Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠ΅ΡΠΆΠ° Π² ΡΠΏΠΈΡΠΊΠ΅; ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ: commit 123456789
.
3. ΠΡΠΊΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ
git revert -m 1 Ρ
Π΅Ρ_ΠΊΠΎΠΌΠΌΠΈΡΠ°_ΠΌΠ΅ΡΠ΄ΠΆΠ°
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert, Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -m 1, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ Git, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΆ. Π₯Π΅Ρ_ΠΊΠΎΠΌΠΌΠΈΡΠ°_ΠΌΠ΅ΡΠ΄ΠΆΠ° - ΡΡΠΎ Ρ Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠ΅ΡΠΆΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.
4. ΠΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΠ΅ ΠΎΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ°
git commit -m "ΠΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ°"
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert, Git ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΠ°ΡΠΈΡ ΠΌΠ΅ΡΠΆ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git commit, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ "ΠΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ°".
ΠΠΎΡ ΠΈ Π²ΡΠ΅! Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΆΠ°. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΎΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°ΠΆΠ΅Π½ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΡΠΎΠ±Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠΈΠ²Π΅Π΄Ρ ΠΏΡΠΈΠΌΠ΅Ρ:
git checkout master
git merge branch_name
git log
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Ρ Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΌΠ΅ΡΠΆΠ°. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git revert -m 1 hash_commit_merge
git commit -m "ΠΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ°"
ΠΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΠ°ΡΠ° ΠΌΠ΅ΡΠΆΠ°. Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π±ΡΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Git ΠΈ Π±ΡΠΊΠ°ΠΏΠΈΡΡ ΡΠ²ΠΎΠΈ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΎΡΠΊΠ°Ρ ΠΌΠ΅ΡΠΆΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ Π²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΊΠ°ΡΠΎΠΌ. Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge ΠΈΠ»ΠΈ git stash Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ².
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΌΠ΅ΡΠΆ Π² Git. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΈΠ·Π±Π΅Π³Π°ΡΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Git ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Git.