π§ ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² git Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ 'git reset'. ΠΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
git reset --hard HEAD~N
Π³Π΄Π΅ 'N' - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 'git reset --hard HEAD~2' ΡΠ΄Π°Π»ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΡΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. ΠΠ°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π±Π΅Π· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git. Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² git
Π Git, ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git.1. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρgit commit --amend
. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ» Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git add <ΡΠ°ΠΉΠ»>
git commit --amend
ΠΠ΄Π΅ΡΡ <ΡΠ°ΠΉΠ»> - ΡΡΠΎ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
2. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρgit rebase -i
. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 3 ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git rebase -i HEAD~3
Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ (edit), ΡΠ΄Π°Π»ΠΈΡΡ (delete) ΠΈΠ»ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (pick). Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ»ΡΡΠ°Π΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π²Π΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρgit push --force
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ Π²Π°ΡΠΈΠ΅ΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌΠΈ.