π₯ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ git visual studio Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ: ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² Git Visual Studio, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
git reset --hard HEAD~1
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΄Π°Π»ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ. ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΠ°.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² Git Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Studio, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
1. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
ΠΠΎΠΌΠ°Π½Π΄Π° git revert
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
git revert <commit_hash>
ΠΠ΄Π΅ΡΡ <commit_hash>
- ΡΡΠΎ Ρ
ΡΡ-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Ρ
ΡΡ-ΠΊΠΎΠ΄Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log
, ΠΈ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
2. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ
- --soft
ΠΈ --hard
.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ git reset --soft
git reset --soft HEAD~1
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ, Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½ΠΎ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ "ΠΌΡΠ³ΠΊΠΎΠ΅" ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ git reset --hard
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset --hard
ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π½Π΅ΠΌ. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π±Π΅Π·Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΠΎ. ΠΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
git reset --hard <commit_hash>
ΠΠ΄Π΅ΡΡ <commit_hash>
- ΡΡΠΎ Ρ
ΡΡ-ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ Ρ
ΡΡ-ΠΊΠΎΠ΄Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log
, ΠΈ Π½Π°ΠΉΡΠΈ Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠΏΠΈΡΠΊΠ΅.
3. Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ "Rebase and Continue"
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Visual Studio, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ "Rebase and Continue". ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ Team Explorer Π² Visual Studio.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΡ "Changes".
- Π ΡΠΏΠΈΡΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° Π½Π΅ΠΌ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ "Rebase and Continue".
- Π ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ "Delete commit" ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ "Continue".
- ΠΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠ»ΠΊΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Visual Studio ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅: https://docs.microsoft.com/visualstudio/ide/rebasing?view=vs-2022.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Git Ρ ΠΏΠΎΠΌΠΎΡΡΡ Visual Studio. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
ΠΈ git reset
ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ "Rebase and Continue" Π² Visual Studio. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π²ΡΠ΅Π³Π΄Π° Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π²Π°ΠΆΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
.