Git ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅: ΠΡΠΌΠ΅Π½ΠΈΡΡ Git merge, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ
ΠΡΠΌΠ΅Π½ΠΈΡΡ Git merge, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ
Π ΠΌΠΎΠ΅ΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Ρ ΡΠ΄Π΅Π»Π°Π» git merge some-other-branch
Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ³Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² origin master. Π― Π½Π΅ Ρ
ΠΎΡΠ΅Π» ΡΠ»ΠΈΠ²Π°ΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Ρ
ΠΎΡΠ΅Π» Π±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ. ΠΠΎΠ³Π΄Π° Ρ Π΄Π΅Π»Π°Π» git status
ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, Ρ ΠΏΠΎΠ»ΡΡΠ°Π» ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π°ΡΠ΅Π», Ρ ΠΏΠΎΠΏΡΡΠ°Π»ΡΡ Π±Π΅ΠΆΠ°ΡΡ
git revert HEAD -m 1
Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ git status
:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
Π― Π½Π΅ Ρ ΠΎΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠΎΡ Π²Π΅ΡΠ²Ρ Π±ΡΠ»Π° Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ Π½Π° Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΠΊ ΠΌΠ½Π΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ?
git
undo
git-merge
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
Matt Huggins Β Β
05 ΠΌΠ°ΡΡΠ° 2010 Π² 19:24
25 ΠΎΡΠ²Π΅ΡΠΎΠ²
- ΠΡΠΌΠ΅Π½ΠΈΡΡ merge, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ
ΠΠ°Π΄Π½ΠΎ, Ρ ΡΡΡΡΠΎΠΈΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ. ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π½Π° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π΄ΠΎΠΌΠ° Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»Π°ΡΡ. Π― Π²Π·ΡΠ» Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΈ Π½Π°ΠΆΠ°Π». Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΠ²Ρ origin/Development Π±ΡΠ»Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° Π² ΠΌΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ Development , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»Π°ΡΡ ΠΊΠ°ΠΊ…
- ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ merge, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) merge?
Π― ΡΠΎΠ·Π΄Π°Π» ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ΄Π΅Π»Π°Π» ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. Π’Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Π±ΡΠ» Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π·. Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΡ merge ΡΠ²ΠΎΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ,ΡΡΠΎΠ±Ρ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Ρ ΠΌΠΎΠ³ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ merge. ΠΠΎΠ³Π΄Π° Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΊΠ°ΡΡ,…
4598
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ git reflog
ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠ»ΠΈΡΠ½ΠΈΡ ( git reflog
Π±ΡΠ΄Π΅Ρ Π»ΡΡΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ, ΡΠ΅ΠΌ git log
)., ΡΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
git reset --hard commit_sha
ΠΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±:
git reset --hard HEAD~1
ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ Π²Π°ΠΌ 1 ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅/Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΡΠ±ΡΠΎΡΠ΅Π½Ρ Π² ΠΈΡ
Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ . Π§ΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΡ
, Π»ΠΈΠ±ΠΎ ΡΠΏΡΡΡΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π°Π»ΡΡΠ΅, Π»ΠΈΠ±ΠΎ ΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ --merge
Π½ΠΈΠΆΠ΅.
ΠΠ°ΠΊ @Velmont ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π½ΠΈΠΆΠ΅ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ΅, Π² ΡΡΠΎΠΌ ΠΏΡΡΠΌΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅:
git reset --hard ORIG_HEAD
ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ Π»ΡΡΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ORIG_HEAD
Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΈΡΠΊΠ°ΡΡ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ²Π΅Ρ-ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ --merge
Π²ΠΌΠ΅ΡΡΠΎ --hard
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ:
git reset --merge ORIG_HEAD
—ΠΏΠΎΠ³Π»ΠΎΡΠ°ΡΡ
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ <commit> ΠΈ HEAD, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ (Ρ. Π΅. ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ).
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Marcin Gil Β Β
05 ΠΌΠ°ΡΡΠ° 2010 Π² 19:34
1484
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Π°Ρ ΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π½Π΅ Π±ΡΠ» Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ origin/master,, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ
git reset --hard origin/master
Π’ΠΎΠ³Π΄Π° Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠ²Ρ master
Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ origin/master
.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
randomguy3 Β Β
17 ΠΌΠ°ΡΡΠ° 2011 Π² 18:06
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Yuri Geinish Β Β
02 ΠΈΡΠ½Ρ 2011 Π² 16:31
1006
Π‘ΡΡΠ°Π½Π½ΠΎ, ΡΡΠΎ Π½Π΅ Ρ Π²Π°ΡΠ°Π»ΠΎ ΡΠ°ΠΌΠΎΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠ²Π΅ΡΠΎΠ² ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΠΎΡΠΌΠ΅Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± :
git reset --merge ORIG_HEAD
Ref ORIG_HEAD
Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ.
(ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ --merge
Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ , ΠΊΠ°ΠΊ git reset --hard ORIG_HEAD
, Π½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.)
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
odinho — Velmont Β Β
29 ΡΠ½Π²Π°ΡΡ 2013 Π² 15:46
401
Π Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ Git, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ , Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
git merge --abort
ΠΡ man git merge
:
[ΠΡΠΎ] ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ.
git merge --abort
ΠΏΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Travis Reeder Β Β
12 ΡΠ΅Π²ΡΠ°Π»Ρ 2013 Π² 02:13
141
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°). , ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΡΡΠ»ΠΊΡ SHA, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ² Π½Π°Π·Π°Π΄ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ.
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π²Π°ΡΠ° Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠ²Ρ Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π½ΠΈΠΊΠ°ΠΊΠΈΡ
Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ origin/master
.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
MBO Β Β
05 ΠΌΠ°ΡΡΠ° 2010 Π² 19:31
88
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git reflog
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ ΡΡΠΈΠΌ. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ JUST ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅.
git reflog
ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅:
fbb0c0f HEAD@{0}: commit (merge): Merge branch 'master' into my-branch
43b6032 HEAD@{1}: checkout: moving from master to my-branch
e3753a7 HEAD@{2}: rebase finished: returning to refs/heads/master
e3753a7 HEAD@{3}: pull --rebase: checkout e3753a71d92b032034dcb299d2df2edc09b5830e
b41ea52 HEAD@{4}: reset: moving to HEAD^
8400a0f HEAD@{5}: rebase: aborting
ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. 2-Ρ ΡΡΡΠΎΠΊΠ° — ΡΡΠΎ Π²ΡΠ΅ΠΌΡ Π΄ΠΎ ΠΌΠΎΠ΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π― ΠΏΡΠΎΡΡΠΎ git reset --hard 43b6032
, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΡΡ Π²Π΅ΡΠ²Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Parris Β Β
19 Π΄Π΅ΠΊΠ°Π±ΡΡ 2014 Π² 17:51
52
Π‘ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Git, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅:
git merge --abort
ΠΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ:
git reset --merge
Π‘ΡΠ°ΡΠ°Ρ ΡΠΊΠΎΠ»Π°:
git reset --hard
ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠΎΠΈΡ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ git merge --abort
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ git reset --merge
, ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ MERGE_HEAD
ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π² ΡΠΏΡΠ°Π²ΠΊΠ΅ Git Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ merge.
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
ΠΠΎΡΠ»Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ MERGE_HEAD
, Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git reset --merge
, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git merge --abort
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠΌ ΠΈ Π½ΠΎΠ²ΡΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ .
git pull
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Matt Huggins Β Β
05 ΠΌΠ°ΡΡΠ° 2010 Π² 19:54
23
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git reflog
, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π·Π°ΠΊΠ°Π·. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ
ΠΎΡΠ΅ΡΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ.
ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ,
$ git reflog
$ git reset --hard HEAD@{0}
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
stephjang Β Β
17 ΡΠ½Π²Π°ΡΡ 2014 Π² 22:36
23
ΠΡΠ»ΠΈ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π΅Π³ΠΎ
git merge --abort
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
llioor Β Β
13 Π΄Π΅ΠΊΠ°Π±ΡΡ 2018 Π² 14:05
18
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ HEAD, Π½Π΅ Π²Π°Ρ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½ΠΎ git HEAD.…
ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠΈΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΡΠΎΡΠΈΡ, ΠΎΠ±ΡΡΡΠ½ΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ HEAD
.
HEAD
-ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ (ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ) Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ.
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ HEAD
. (ΠΈΡΠΊΠ»ΡΡΠ°Ρ git worktree
)
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ HEAD
Ρ
ΡΠ°Π½ΠΈΡΡΡ Π²Π½ΡΡΡΠΈ .git/HEAD
ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 40 Π±Π°ΠΉΡ SHA-1 ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ — ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ HEAD
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ, ΠΎΠ½ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ detached HEAD
.
Π ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ — SHA-1 Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅ΡΠ²ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ HEAD
Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠΈΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ HEAD:
git checkout
git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ Π½Π° ΠΆΠ΅Π»Π°Π΅ΠΌΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ).
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ).
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
# Checkout a given commit.
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
# in order to be able to update the code.
git checkout <commit-id>
# create a new branch forked to the given commit
git checkout -b <branch name>
git reflog
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ reflog
.
git reflog
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΎ HEAD
, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½ΡΠΆΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ΅ΡΠ»ΠΎΠ³Π° Π²Π΅ΡΠ½Π΅Ρ HEAD
ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ).
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° HEAD ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π² reflog
ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ Π·Π°ΠΏΠΈΡΡ
git reflog
git checkout HEAD@{...}
ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ Π²Π°Ρ ΠΊ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°)
git reset --hard <commit_id>
«Move» Π²Π°Ρ HEAD Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π½ΡΠΆΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32
# Alternatively, if there's work to keep:
git stash
git reset --hard 0d1d7fc32
git stash pop
# This saves the modifications, then reapplies that patch after resetting.
# You could get merge conflicts if you've modified things which were
# changed since the commit you reset to.
- ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ( Π½Π°ΡΠΈΠ½Π°Ρ Ρ Git 2.7 )
Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡgit rebase --no-autostash
.
git revert <sha-1>
«Undo» Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ Π²ΡΠ±ΠΎΡ.
ΠΠΎΠΌΠ°Π½Π΄Π° reset Π±ΡΠ΄Π΅Ρ «undo» Π»ΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π΄Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ).
ΠΠΎΠ²Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π°, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΈΡΡ
ΠΎΠ΄Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ.
# add new commit with the undo of the original one.
# the <sha-1> can be any commit(s) or commit range
git revert <sha-1>
ΠΡΠ° ΡΡ
Π΅ΠΌΠ° ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΠΊΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ.
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΠ°ΠΌ reset && checkout
ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅Ρ HEAD
.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
CodeWizard Β Β
31 ΠΈΡΠ»Ρ 2019 Π² 15:38
17
Π― ΡΠΌΠΎΠ³ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
git reset --hard remotes/origin/HEAD
ΠΡΠΈΠ½ΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π» Π΄Π»Ρ ΠΌΠ΅Π½Ρ, Π½ΠΎ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π»Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΈΡΠΊΠ°Π».
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Ralph Ritoch Β Β
25 ΠΈΡΠ»Ρ 2018 Π² 09:55
14
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ Π΅Π³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
$ git checkout -f
ΠΡΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (ΠΈ Π²ΡΠ΅, ΡΡΠΎ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ).
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Idealmind Β Β
18 ΡΠ½Π²Π°ΡΡ 2013 Π² 15:25
14
ΠΠΎΠ±ΡΠ°Π»ΡΡ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ° ΡΠ°ΠΊΠΆΠ΅ Ρ Π½Π΅ΡΠ΅ΡΠΏΠ΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΌΠ°ΡΡΡ origin (ΡΠΎ Π΅ΡΡΡ, NO ΠΊΠΎΠΌΠΌΠΈΡΠ° Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ origin). ΠΡΡΠ»Π΅Π΄ΡΡ Π΄Π°Π»ΡΡΠ΅, Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° reset
ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ:
git reset --hard @{u}
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: @{u}
-ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ origin/master
. (Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ.)
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
leanne Β Β
16 ΡΠ΅Π²ΡΠ°Π»Ρ 2017 Π² 21:54
14
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ.
1) ΠΡΠ΅ΡΠ²Π°ΡΡ Π‘Π»ΠΈΡΠ½ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ»ΠΎΡ ΠΈΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ (ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΌ Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²ΡΡ) ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
git merge --abort
2) ΡΠ±ΡΠΎΡ HEAD Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠ²Ρ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ HEAD Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
git reset --hard origin/develop
3) Π£Π΄Π°Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠ²Ρ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΎΡΠΌΠΈΡΡ Π·Π°ΠΊΠ°Π· ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π£ΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ Π ΠΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
git checkout master
##to delete one branch, you need to be on another branch, otherwise you will fall with the branch :)
git branch -D develop
git checkout -b develop origin/develop
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Amit Kaneria Β Β
25 ΠΈΡΠ»Ρ 2019 Π² 15:06
12
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΡΠ²Π΅Ρ — ΡΡΠΎ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°Π» ΠΎΠ΄ΠΈΠ½ΡΡ- ΠΠ΅Π»ΡΠΌΠΎΠ½
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ git reset --merge ORIG_HEAD
ΠΠ»Ρ ΡΠ΅Ρ
, ΠΊΡΠΎ Ρ
ΠΎΡΠ΅Ρ ΡΠ±ΡΠΎΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ
(ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΡ, ΡΠ²ΠΈΠ΄Π΅Π½Π½ΡΠΉ Π΄Π»Ρ Π»ΡΠ±ΡΡ
Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ git reset)
git push origin HEAD --force
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΡΠΎΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡ. , ΠΈ ΠΎΠ½ Π²Π΅ΡΠ½ΡΠ» Π²ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅ Π±ΡΠ»ΠΈ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅Π°Π΄ΡΠ΅ΡΠΎΠ²Π°Π½Ρ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π±Π»ΠΎΠΊΠΎΠΌ, Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³ Π½Π°Π·Π°Π΄-«branch not merged».
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Damien Byrne Β Β
09 ΠΈΡΠ½Ρ 2011 Π² 00:54
10
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°):
git reset --hard commitHash
(Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ. 44a587491e32eafa1638aca7738)git push origin HEAD --force
(ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π² origin/master)
Π£Π΄Π°ΡΠΈ ΠΈ Π²ΠΏΠ΅ΡΠ΅Π΄!
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Matheus Abreu Β Β
12 Π΄Π΅ΠΊΠ°Π±ΡΡ 2014 Π² 23:16
8
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ Π·Π°ΠΏΡΡΠ΅Π½Ρ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠ²Ρ, ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π΅ Π·Π°Π½ΠΎΠ²ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» Π²Π΅ΡΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² master ΠΈ Ρ ΠΎΡΠ΅Π» ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
git checkout develop
git branch -D master
git branch -t master origin/master
ΠΡΠ°Π»Ρ! ΠΠ°ΡΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ°Π΄ΠΈΠΈ, ΡΡΠΎ ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ, ΠΈ ΠΠ°ΡΠ΅ Π½Π΅Π²Π΅ΡΠ½ΠΎ ΡΠ»ΠΈΡΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Stephan Β Β
26 ΠΈΡΠ½Ρ 2012 Π² 11:15
4
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, Ρ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΉΡΠΈ Ρ ΠΎΡΠ²Π΅ΡΠΎΠΌ MBO.
ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ, Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄:
- Kick off
gitk
(ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΠ»ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΎ) - ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΌ — ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·Π΅Π» ΡΠ²Π΅ΡΡ Ρ Ρ Π΄Π²ΡΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΌΠΈ
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ/Π»Π΅Π²ΡΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ (ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΊΡΠ°ΡΠ½ΡΠΉ Π΄Π»Ρ ΠΌΠ΅Π½Ρ)
- ΠΠ° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ «Reset branch to here», Π²ΡΠ±Π΅ΡΠΈΡΠ΅ hard reset there
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
inger Β Β
21 ΠΌΠ°ΡΡΠ° 2013 Π² 14:38
4
Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ: ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π³Π΄Π΅ Π²ΡΠ΅ Π±ΡΠ»ΠΎ Ρ ΠΎΡΠΎΡΠΎ.
ΠΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅: Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π·Π°ΡΡΡΠ΄Π½Π΅Π½. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π·Π°Π²ΠΈΡΡΡΠΈΡ ΠΎΡ ΠΌΠ½ΠΎΠ³ΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎ, ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ Π»ΠΈ Π²Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΠ»ΠΈ Π΅Π³ΠΎ, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π±ΡΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΠΌ Π²ΡΠ΅ Π΅ΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ git, ΡΡΠΎΠ±Ρ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΡΠ»ΡΡΠ°Ρ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ»Π΅ΠΏΠΎ ΡΠ»Π΅Π΄ΡΠ΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ «empty merge», Π³Π΄Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΎ, ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ ΠΏΠΎΠΏΡΡΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Π·Π°ΡΡΠ°Π²ΡΡ Git ΡΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ «Already up to date».
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ dev
Π² feature-1
.
ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ΅Π²ΠΈΠ·ΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ:
git log --oneline feature-1 a1b2c3d4 Merge branch 'dev' into 'feature-1' <-- the merge you want to undo e5f6g7h8 Fix NPE in the Zero Point Module <-- the one before the merge, you probably want this one
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΠΎ (Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠ΅):
git checkout e5f6g7h8
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΎΡΡΡΠ΄Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΅Π΅:
git checkout -b feature-1
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅:
Π‘Π»ΠΈΡΠ½ΠΈΠ΅:
git merge dev
ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ.
Π€ΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ):
git commit
ΠΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ, ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΡΠ°ΡΡΡ Π²Π΅ΡΠ²Ρ:
git branch --delete feature-1
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
pyb Β Β
11 ΠΈΡΠ½Ρ 2015 Π² 15:42
2
ΠΡΠΎΡΡΠΎ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ Π½Π΅Π΅.
ΠΠ³ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΈ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ ΡΠ±ΡΠΎΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΎΡΠ²Π΅ΡΠ°Ρ Π²ΡΡΠ΅
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
gdbdable Β Β
15 Π°Π²Π³ΡΡΡΠ° 2019 Π² 13:41
1
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ git rebase -i [hash] [branch_name]
, Π³Π΄Π΅ [hash]
-ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ hash Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π°Π·Π°Π΄ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠ°ΡΡ ΠΏΠ»ΡΡ ΠΎΠ΄ΠΈΠ½ (ΠΈΠ»ΠΈ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°Π·Π°Π΄ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΉΡΠΈ), Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π Π΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ». ΠΡΡ
ΠΎΠ΄. ΠΠΎΠ»ΠΈΡΡΡΡ. Π Π΅Π³ΠΎ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠ°ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ , Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ git reset --hard
, Π½ΠΎ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Ρ
ΠΎΡΠΎΡΠΎ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΡΠ΅ΠΊΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ Ρ
ΡΠ°Π½ΠΈΡΡ ΠΈΡ
Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
tychoish Β Β
08 ΠΌΠ°ΡΡΠ° 2010 Π² 02:55
1
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.
ΠΠ°ΡΠ΅ΠΌ ΡΠ±ΡΠΎΡΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅:
$ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36
ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
--hard
( ΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅, Π½Π΅ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ! ):$ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36 --hard
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ hash, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ°ΠΌ Π΄ΠΎ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π±Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ::
$ git log 4c3e23f529b581c3cbe95350e84e66e3cb05704f commit 4c3e23f529b581c3cbe95350e84e66e3cb05704f ... commit 16b373a96b0a353f7454b141f7aa6f548c979d0a ...
ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ Π²Π°ΡΠΈ ΠΏΡΠ°Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠ°Π²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ cherry-pick (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ)
git cherry-pick ec59ab844cf504e462f011c8cc7e5667ebb2e9c7
ΠΠ»ΠΈ ΠΏΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π±ΠΎΡΠ° Π²ΠΈΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΡΠ΄Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎ:
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ:
git diff 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ:
git cherry-pick 5216b24822ea1c48069f648449997879bb49c070. .4c3e23f529b581c3cbe95350e84e66e3cb05704f
Π³Π΄Π΅ ΡΡΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ (ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎ Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅).
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
kenorb Β Β
29 ΡΠ½Π²Π°ΡΡ 2013 Π² 15:09
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΡΠΌΠ΅Π½ΠΈΡΡ a git merge (Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ)
Π― ΠΏΡΠΎΡΡΠΎ Π²Π½Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΌΠΎΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ (feedback_tab), Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» master ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» ΠΈΡ ΡΠ°ΠΌ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Ρ Ρ ΠΎΡΠ΅Π» merge ΠΈΡ Π² ΡΠ²ΠΎΡ development Π²Π΅ΡΠΊΡ. Π’Π΅ΠΏΠ΅ΡΡ master…
Git: ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ-merge ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)?
Π‘ SVN Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ-merge ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½ΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Git?
ΠΡΠΌΠ΅Π½ΠΈΡΡ » git reset —merge»
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»: git reset —merge ΠΈ Ρ ΠΏΠΎΡΠ΅ΡΡΠ» ΡΠ²ΠΎΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΠ»Π°Ρ , ΠΊΠ°ΠΊ ΠΌΠ½Π΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅?
ΠΡΠΌΠ΅Π½ΠΈΡΡ merge, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ
ΠΠ°Π΄Π½ΠΎ, Ρ ΡΡΡΡΠΎΠΈΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ. ΠΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡ, Π½Π° ΠΌΠΎΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π΄ΠΎΠΌΠ° Π²Π΅ΡΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ»Π°ΡΡ. Π― Π²Π·ΡΠ» Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΈ Π½Π°ΠΆΠ°Π». Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΠ²Ρ origin/Development Π±ΡΠ»Π°…
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ merge, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) merge?
Π― ΡΠΎΠ·Π΄Π°Π» ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Ρ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ΄Π΅Π»Π°Π» ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. Π’Π΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ°ΡΡΠ΅Ρ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Π±ΡΠ» Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π·. Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΡ merge ΡΠ²ΠΎΡ…
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ Git, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ°Π·Π΄Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ merge?
Π― ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅Π» ΠΈΠ· Subversion Π² Git. Π― Π±ΡΠ» ΡΠ²ΡΠ·Π°Π½ Ρ Π ΠΠΠ Subversion ΡΠ΅ΡΠ΅Π· git-svn Π΄ΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΠΈΠ·ΡΡΠ΄Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΡΠΎΡΠΈΠΈ Π±ΡΠ»ΠΎ…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π±ΡΡΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΡ merge Π² git Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ reset
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ: master: M release-candidate: \ A—B’—C’ feature-A: \-A-/ / / feature-B: \-B—/ / feature-C: \—C—/ Π Π΅Π»ΠΈΠ·-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄: git co. ..
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ git merge, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ
Π Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠ²Ρ, Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΡΠΈΡ ΠΊΠΎΠ»Π»Π΅Π³ Π±ΡΠ»Π° Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠ²Ρ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ. ΠΡΠ΅ΡΠ° ΠΎΠ½ ΡΠ»ΠΈΠ» ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ° Ρ Π³Π»Π°Π²Π½ΡΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΡΠΎΠ»ΠΊΠ½ΡΠ». Π’Π°ΠΊ ΡΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ a merge (Π΄ΠΎ merge ΠΏΠΎΠ·ΠΆΠ΅)
ΠΠ΅ΡΠ½ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΠΎ. ΠΠΎ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ Ρ ΠΎΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΠΈΠ· merge, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΠΈ merge ΠΏΠΎΠ·ΠΆΠ΅?…
ΠΡΠΌΠ΅Π½ΠΈΡΠ΅ git merge, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ» Π½Π°ΠΆΠ°Ρ, ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ merge
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ Π² master Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΄Π΅Π»Π°Π»: git pull // it automatically merged and had a conflict with one file only. subl <file> // Made…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ?
Π― Π½Π°ΡΠ΅Π» Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Β« ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅Β» ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅, ΠΈ Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π» ΠΈ Π²ΡΡΠ°Π²ΠΈΠ» ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅, ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΡΡΠ»ΠΊΠ° Π½ΠΈΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅,
ΠΠ»Π°Π½ ([email protected]) ΡΠΊΠ°Π·Π°Π»:
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π²Π΅ΡΠΊΠ°. Π£ Π½Π°Ρ Π΅ΡΡΡ Π²Π΅ΡΠΊΠ°, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ. ΠΠ½ΠΈ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π³ΠΎΡΠΎΠ²ΠΎ. ΠΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΡΡΠΎ Π² Π³Π»Π°Π²Π½ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΠΎ ΡΡΠΎ-ΡΠΎ Π»ΠΎΠΌΠ°Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΎΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠ΅. ΠΠ½ΠΈ Π²Π½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄. ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΅Π³ΠΎ Π΄ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΈ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΡΠ»ΠΈΠ²Π°Π΅ΠΌΡΡ. ΠΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π΄ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π΅ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. ΠΈ ΠΏΠΎΠΏΡΠΎΡΠΈΠ» ΠΏΠΎΠΌΠΎΡΠΈ Π² Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΡΡΠΎΡΠΈΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΡΒ» Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
---o---o---o---M---x---x---W
/
---A---B
Π³Π΄Π΅ A ΠΈ B Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ΅ΠΉ, M — ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Π½ΠΎΡΠΈΡ ΡΡΠΈ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π»ΠΈΠ½ΠΈΡ, x — ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΠΎΠΊΠΎΠ²Π°Ρ Π²Π΅ΡΠ²Ρ ΡΠ΄Π΅Π»Π°Π»Π° ΠΈ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ, Π° W — ΡΡΠΎ » Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π «(ΡΠ°Π·Π²Π΅ W Π½Π΅ ΡΠΌΠΎΡΡΠΈΡ Π½Π° Π Ρ Π½ΠΎΠ³ Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρ?). .. M».
Π’Π°ΠΊΠΎΠΉ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΒ» ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΄Π΅Π»Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
$ git revert -m 1 M
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΈΡΠΏΡΠ°Π²ΡΡ ΡΠ²ΠΎΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΈΡΡΠΎΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
---o---o---o---M---x---x---W---x
/
---A---B-------------------C---D
Π³Π΄Π΅ C ΠΈ D Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ»ΠΎΠΌΠ°Π½ΠΎ Π² A ΠΈ B, ΠΈ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΌΠ°Π³ΠΈΡΡΡΠ°Π»ΠΈ ΠΏΠΎΡΠ»Π΅ W.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π±ΠΎΠΊΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ (Ρ D Π½Π° ΠΊΠΎΠ½ΡΠΈΠΊΠ΅), Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² A ΠΈΠ»ΠΈ B, Π½Π΅ Π±ΡΠ΄Π΅Ρ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ W. ΠΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΠ»Π°Π½ Π²ΠΈΠ΄Π΅Π».
ΠΠΈΠ½ΡΡ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΡΠΈΡΡΠ°ΡΠΈΡ:
ΠΡΠΌΠ΅Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ», Π½ΠΎ ΡΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠΌΠ΅Π»ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΈ ΠΎΠ½ΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ, ΠΈ Π±ΡΠ΄ΡΡΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΎΠ±ΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ — ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΠΈΠ» Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Β«Π²ΠΎΠ·Π²ΡΠ°ΡΒ» ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π½Π΅Β«ΠΎΡΠΌΠ΅Π½Π°Β» Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π²Π»ΠΈΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Β» ΠΊΠ°ΠΊ ΠΎΠ± Β«ΠΎΡΠΌΠ΅Π½Π΅Β», ΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΡΡ ΡΠ°ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠ². ΠΠ°, ΡΡΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π½Π΅Ρ, ΡΡΠΎ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²Ρ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ ΡΠ½Π°ΡΠ°Π»Π° Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ, ΡΡΠΎ Π±Ρ ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
---o---o---o---M---x---x---W---x---Y
/
---A---B-------------------C---D
Π³Π΄Π΅ Y — ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ W. Π’Π°ΠΊΠΎΠΉ Β«Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ Π²ΠΎΠ·Π²ΡΠ°ΡΡΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
$ git revert W
ΠΡΠ° ΠΈΡΡΠΎΡΠΈΡ (ΠΈΠ³Π½ΠΎΡΠΈΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ W ΠΈ W..Y) Π±ΡΠ΄Π΅Ρ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ W ΠΈΠ»ΠΈ Y Π² ΠΈΡΡΠΎΡΠΈΠΈ:
---o---o---o---M---x---x-------x----
/
---A---B-------------------C---D
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±ΠΎΠΊΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π½Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌΡ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
---o---o---o---M---x---x-------x-------*
/ /
---A---B-------------------C---D
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² C ΠΈ D, Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²Π°ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π»ΡΠ±ΡΠΌ ΠΈΠ· x, Π½ΠΎ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΌΠ΅ΡΠΆ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΡΠΊΠ°ΠΌΠΈ? β Π₯Π°Π±Ρ Q&A
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ.
ΠΡΡΠ°ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ git. ΠΡΠ΅Π΄ΡΡΡΠΎΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ.
ΠΠΎΠ»ΡΡΠ°Ρ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΠΎΠ»Π½ΡΠΉ Π±ΡΠΊΠ°ΠΏ ΡΠ°ΠΉΡΠ° Π² Π²ΠΈΠ΄Π΅ Π°ΡΡ ΠΈΠ²Π°. Π Π°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Ρ Π΄Π°Π½Π½ΡΠΉ Π±ΡΠΊΠ°ΠΏ Π½Π° ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅, Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΠ°ΠΉΡ Π²ΡΠ΅ ΠΎΠΊ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Π³ΠΈΡΡ Π°Π±Π΅. Π ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅ΡΠΎΠΊ Π²Π΅ΡΠΊΠ΅ Π»Π΅ΠΆΠΈΡ Π½Π΅ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΉΡΠ°, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ° ΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ (Π²ΡΠ±ΡΠΎΡΠΈΠ»ΠΈ ΠΎΡΡΡΠ΄Π° ΡΠ΄ΡΠΎ, Π³ΡΡΠ±ΠΎ Π³ΠΎΠ²ΠΎΡΡ).
Π― Π΄Π΅Π»Π°Ρ ΡΠ°ΠΊ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡΠΌ ΡΠ°ΠΉΡΠΎΠΌ Π½Π° ΠΌΠΎΠ΅ΠΉ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠ΅:
$ init git
$ git remote add clientrepo https://username:[email protected]/Company/repo.git
$ git fetch
$ git checkout -t clientrepo/vetka
$ git status
$ git add .
$ git commit -m «start»
ΠΠΎΡΠΎΠΌ Π²Π½ΠΎΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄.
$ git commit -m «finish»
Π ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΠΏΡΡΠΈΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Ρ ΠΎΡΡΡΠ΄Π° ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ.
$ git pull clientrepo vetka
$ git merge clientrepo/vetka
ΠΠΈΠΆΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ:
fatal: ‘merge’ is not possible because you have unmerged files.
ΠΠ²ΠΎΠΆΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ git status
ΠΠΈΠΆΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΡΠ΅ΠΊΡΠΈΡ Ρ Π·Π°ΠΏΠΈΡΡΠΌΠΈ new file: ΠΈ ΡΠ΅ΠΊΡΠΈΡ Ρ both added:
Π php-ΡΠ°ΠΉΠ»Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ both added: ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ «ΠΊΠΎΠΌΠΌΠ΅Π½ΡΡ» Π²ΠΈΠ΄Π°, ΡΠ°ΠΉΡ, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΏΠ΅Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΈΠ·-Π·Π° ΡΡΠΈΡ «ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΎΠ²»:
<<<<<<< HEAD
code_one
=======
code_two
>>>>>>> ae235f459f0cc2d9108f051c5832b7d961f23127
ΠΠΎΠΏΡΠΎΡ 1.
ΠΡΠ»ΠΈ Ρ Π·Π°Ρ
ΠΎΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° «finish», ΡΠΎ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?
ΠΠΎΠΏΡΠΎΡ 2.
ΠΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ? ΠΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ? ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΈΠΏΠ°: Π·Π°Ρ
ΠΎΠ΄ΠΈΠΌ Π²ΠΎ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ΅ΠΊΡΠΈΠΈ added both, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π·Π°ΡΠΈΡΠ°Π΅ΠΌ code_1, ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ code_2, ΠΏΠΎΡΠΎΠΌ Π΄Π΅Π»Π°Π΅ΠΌ .
git pull
git — ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ git, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ, ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠ°ΠΊ, Ρ ΡΠ΄Π΅Π»Π°Π»:
git pull // it automatically merged and had a conflict with one file only.
subl <file> // Made the wrong fix and saved it
git commit // It opened nano and I Typed "fixed merge" saved it
git push master origin
ΠΠ°ΠΊ ΠΌΠ½Π΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΡ? ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ.
2
IskandarG
2 ΠΠΎΡ 2016 Π² 11:39
2 ΠΎΡΠ²Π΅ΡΠ°
ΠΡΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
git revert -m 1 (Commit id of the merge commit)
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
Π Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git reflog <branch>
, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, Π³Π΄Π΅ Π±ΡΠ»Π° Π²Π°ΡΠ° Π²Π΅ΡΠΊΠ° Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΈ git reset --hard <commit_id>
, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΡΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡ (Π²Ρ Π²Π΅ΡΠ½Π΅ΡΠ΅ΡΡ ΠΊ ΡΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ). Π’ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΡ push
Π΅Π³ΠΎ Π²Π΅ΡΠ½ΡΡΡ.
Reflog ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π²Π΅ΡΠΊΠΈ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅
6
Karol Gasienica
15 ΠΠΎΡ 2016 Π² 07:22
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ:
git revert HEAD
ΠΠ½ Π²Π΅ΡΠ½Π΅Ρ Π²Π°ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΊΠ°ΠΊ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
0
Khuong Dang
2 ΠΠΎΡ 2016 Π² 09:06
40375520
30. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
01 Π‘Π»ΠΈΡΠ½ΠΈΠ΅ master Ρ Π²Π΅ΡΠΊΠΎΠΉ style
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π²Π΅ΡΠΊΠ΅ style ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΅Π΅ Ρ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ master.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git checkout style git merge master
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git checkout style Switched to branch 'style' $ git merge master Auto-merging lib/hello.html CONFLICT (content): Merge conflict in lib/hello.html Automatic merge failed; fix conflicts and then commit the result.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ lib/hello.html, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅:
Π€Π°ΠΉΠ»:
lib/hello.html
<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <<<<<<< HEAD <link type="text/css" rel="stylesheet" media="all" href="style.css" /> ======= <!-- no style --> >>>>>>> master </head> <body> <h2>Hello,World! Life is great!</h2> </body> </html>
ΠΠ΅ΡΠ²ΡΠΉ ΡΠ°Π·Π΄Π΅Π» — Π²Π΅ΡΡΠΈΡ Π²ΠΎ Π³Π»Π°Π²Π΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ (style). ΠΡΠΎΡΠΎΠΉ ΡΠ°Π·Π΄Π΅Π» — Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠΊΠΈ master.
02 Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² lib/hello.html
Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°.
Π€Π°ΠΉΠ»:
lib/hello.html
<!-- Author: Alexander Shvets ([email protected]) --> <html> <head> <link type="text/css" rel="stylesheet" media="all" href="style.css" /> </head> <body> <h2>Hello, World! Life is great!</h2> </body> </html>
03 Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add lib/hello.html git commit -m "Merged master fixed conflict."
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git add lib/hello.html $ git commit -m "Merged master fixed conflict." Recorded resolution for 'lib/hello.html'. [style 645c4e6] Merged master fixed conflict.
04 Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ
Git Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½ΠΎ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌΠΈ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ (ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π° StackOverflow).
ΠΡΠ½ΠΎΠ²Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ | Pro Git
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- Π Π°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠΌ.
- Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π²Π΅ΡΠΊΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π° ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΊΡΠΈΡΠΈΡΠ½Π° Π΄ΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Π΅Ρ Π½Π°Π΄ΠΎ ΡΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ. ΠΡ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
- ΠΠ΅ΡΠ½ΡΡΠ΅ΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ.
- 2. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
- ΠΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ»ΡΡΡΠ΅ Π²Π΅ΡΠΊΡ Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½.
- ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ ΠΏΡΠ΅ΡΠ²Π°Π½Π½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ½ΠΎΠ²Ρ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π°Π΄ ΡΠ²ΠΎΠΈΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΈ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² (ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 3-10).
Π ΠΈΡΡΠ½ΠΎΠΊ 3-10. Π ΠΈΡΡΠ½ΠΎΠΊ 3-10.
ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β53 ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ. Π Π°Π·ΡΠΌΠ΅Π΅ΡΡΡ, Git Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠΎΡΡΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β53 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π²Ρ ΡΠΎΠ·Π΄Π°Π΄ΠΈΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Π² Π½Π΅ΠΉ. Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π½Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
Ρ ΠΊΠ»ΡΡΠΎΠΌ -b
:
$ git checkout -b iss53
Switched to a new branch "iss53"
ΠΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ:
$ git branch iss53
$ git checkout iss53
Π ΠΈΡΡΠ½ΠΎΠΊ 3-11 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
Π ΠΈΡΡΠ½ΠΎΠΊ 3-11. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΈ / ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π²Π°ΡΠΈΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠΌ, Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ΄Π²ΠΈΠ³Π°ΡΡ Π²Π΅ΡΠΊΡ iss53
Π²ΠΏΠ΅ΡΡΠ΄ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Π½Π° Π½Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ (ΡΠΎ Π΅ΡΡΡ Π²Π°Ρ HEAD
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Ρ; ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 3-12):
$ vim index.html
$ git commit -a -m 'added a new footer [issue 53]'
Π ΠΈΡΡΠ½ΠΎΠΊ 3-12. ΠΠ΅ΡΠΊΠ° iss53
ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΠ»Π°ΡΡ Π²ΠΏΠ΅ΡΡΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π·Π²ΠΎΠ½ΠΎΠΊ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ. Π‘ Git, Π²Π°ΠΌ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π·Π°ΠΏΠ»Π°ΡΠΊΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π΄Π»Ρ iss53
. Π ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Π²Π΅ΡΠΊΡ master
.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΡΡΡΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈΠΌΠ΅ΡΡΡΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡ Ρ Π²Π΅ΡΠΊΠΎΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅, Git Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ Π²Π΅ΡΠΊΠΈ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡ ΡΠΈΡΡΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, ΠΏΡΡΡΠ°Π½ΡΠ΅ (stash
) ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠ°Π²ΠΊΠ° (amend
) ΠΊΠΎΠΌΠΌΠΈΡΠ°), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅. Π Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° Π²Π΅ΡΠΊΡ master
:
$ git checkout master
Switched to branch "master"
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΡΠ½ΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΡΠΎ ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β53, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. ΠΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ: Git Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΊ ΡΠ½ΠΈΠΌΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΅ΡΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅. ΠΠ½ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ, ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π° Π²Π΅ΡΠΊΠ΅.
ΠΡΠ°ΠΊ, Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²Π΅ΡΠΊΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ (ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 3-13):
$ git checkout -b 'hotfix'
Switched to a new branch "hotfix"
$ vim index.html
$ git commit -a -m 'fixed the broken email address'
[hotfix]: created 3a0874c: "fixed the broken email address"
1 files changed, 0 insertions(+), 1 deletions(-)
Π ΠΈΡΡΠ½ΠΎΠΊ 3-13. ΠΠ΅ΡΠΊΠ° Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π²Π΅ΡΠΊΠ΅ master
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΡΡ, ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΠΈ ΡΠ»ΠΈΡΡ (merge
) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°Π·Π°Π΄ Π² Π²Π΅ΡΠΊΡ master
, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠΎΠ΄ΡΠΊΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge
:
$ git checkout master
$ git merge hotfix
Updating f42c576..3a0874c
Fast forward
README | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΡΡΠ°Π·Ρ βFast forward
β Π² ΡΡΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Π΅ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ»ΠΈΠ²Π°Π»ΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΠΏΡΡΠΌΡΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ, Git ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΏΠ΅ΡΡΠ΄. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΈΠ΄Ρ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Git ΡΠΏΡΠΎΡΠ°Π΅Ρ Π²Π΅ΡΠΈ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΏΠ΅ΡΡΠ΄, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΡΡ ΡΠ°ΡΡ
ΠΎΠ΄ΡΡΠΈΡ
ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈΡ
Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ. ΠΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ βfast forward
β (ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ°).
ΠΠ°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π² ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π΅ΡΠΊΠ° master
, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡ (ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 3-14).
Π ΠΈΡΡΠ½ΠΎΠΊ 3-14. ΠΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΊΠ° master
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠ΄Π° ΠΆΠ΅, ΠΊΡΠ΄Π° ΠΈ Π²Π΅ΡΠΊΠ° hotfix
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½Π°, Π²Ρ Π³ΠΎΡΠΎΠ²Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π΄Π΅Π»Π°Π»ΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π±ΡΠ»ΠΈ ΠΏΡΠ΅ΡΠ²Π°Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΠΈΡΠ΅ Π²Π΅ΡΠΊΡ hotfix
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π° β Π²Π΅ΡΠΊΠ° master
ΡΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ ΠΆΠ΅ ΠΌΠ΅ΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -d
ΠΊ git branch
:
$ git branch -d hotfix
Deleted branch hotfix (3a0874c).
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β53 ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π½Π΅ΠΉ (ΡΠΌ. Π ΠΈΡΡΠ½ΠΎΠΊ 3-15):
$ git checkout iss53
Switched to branch "iss53"
$ vim index.html
$ git commit -a -m 'finished the new footer [issue 53]'
[iss53]: created ad82d7a: "finished the new footer [issue 53]"
1 files changed, 1 insertions(+), 0 deletions(-)
Π ΠΈΡΡΠ½ΠΎΠΊ 3-15. ΠΠ΅ΡΠΊΠ° iss53 ΠΌΠΎΠΆΠ΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π²ΠΏΠ΅ΡΡΠ΄ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ
Π‘ΡΠΎΠΈΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°, ΡΠ΄Π΅Π»Π°Π½Π½Π°Ρ Π½Π° Π²Π΅ΡΠΊΠ΅ hotfix
, Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ°ΠΉΠ»Ρ Π½Π° Π²Π΅ΡΠΊΠ΅ iss53
. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π΅ΡΠΊΠΈ master
Π² Π²Π΅ΡΠΊΡ iss53
ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge master
. ΠΠ»ΠΈ ΠΆΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠ΅ΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° iss53
Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ master
.
ΠΡΠ½ΠΎΠ²Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅ ΡΠ΅Π±Π΅, ΡΡΠΎ Π²Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β53 ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΡΡ Π²Π΅ΡΠΊΡ ΠΈ ΡΠ²ΠΎΠΉ master
. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ iss53
Π² Π²Π΅ΡΠΊΡ master
ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅ Ρ Π²Π΅ΡΠΊΠΎΠΉ hotfix
. ΠΡΠ΅ ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ β ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git merge
:
$ git checkout master
$ git merge iss53
Merge made by recursive.
README | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
Π‘Π΅ΠΉΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π΄Π»Ρ Π²Π΅ΡΠΊΠΈ hotfix
, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»Π°ΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΎΡΠΊΠ΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π° ΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΠ΅ΡΡ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΡΠΌΡΠΌ ΠΏΡΠ΅Π΄ΠΊΠΎΠΌ Π΄Π»Ρ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ»ΠΈΠ²Π°Π΅ΡΠ΅, Git-Ρ ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΅-ΠΊΠ°ΠΊΡΡ ΡΠ°Π±ΠΎΡΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Git Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΡΠ΅Ρ
Ρ
ΠΎΠ΄ΠΎΠ²ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π΄Π²Π° ΡΠ½ΠΈΠΌΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΎΠΊ, ΠΈ ΠΎΠ±ΡΠΈΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ-ΠΏΡΠ°ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΡΡΠΈΡ
Π΄Π²ΡΡ
Π²Π΅ΡΠΎΠΊ. ΠΠ° ΡΠΈΡΡΠ½ΠΊΠ΅ 3-16 Π²ΡΠ΄Π΅Π»Π΅Π½Ρ ΡΡΠΈ ΡΠ½ΠΈΠΌΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Git Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
Π ΠΈΡΡΠ½ΠΎΠΊ 3-16. Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π΅ΡΠΊΠΈ Π²ΠΏΠ΅ΡΡΠ΄, Git ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΡΠ΅Ρ Ρ ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΠΎΡ Π½ΠΎΠ²ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (ΡΠΌΠΎΡΡΠΈ Π ΠΈΡΡΠ½ΠΎΠΊ 3-17). Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ-ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΡΠΌ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ°.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Git ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π½Π°ΠΈΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΠΊΠ° Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΎΠΊ; Π² CVS ΠΈΠ»ΠΈ Subversion (Π²Π΅ΡΡΠΈΠΈ ΡΠ°Π½Π΅Π΅ 1.5) ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Ρ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ Π·Π°Π½ΡΡΠΈΠ΅ΠΌ, ΡΠ΅ΠΌ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
Π ΠΈΡΡΠ½ΠΎΠΊ 3-17. Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ
Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ, Π²Π΅ΡΠΊΠ° iss53
Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Π°. ΠΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΡΡΠ½ΡΡ Π·Π°ΠΊΡΡΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΡ (ticket) Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅:
$ git branch -d iss53
ΠΡΠ½ΠΎΠ²Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠΈ
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π΅ ΠΈΠ΄Π΅Ρ Π³Π»Π°Π΄ΠΊΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π° ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π² Π΄Π²ΡΡ
Π²Π΅ΡΠΊΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ, Git Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠΈΡΡΠΎ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β53 ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π°, ΡΡΠΎ ΠΈ hotfix
, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΈ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
$ git merge iss53
Auto-merging index. html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
Git Π½Π΅ ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ½ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ ΠΏΡΠΎΡΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (Π½Π° Π»ΡΠ±ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°), ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
:
[master*]$ git status
index.html: needs merge
# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# unmerged: index.html
#
ΠΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΈ ΡΡΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ, ΠΎΡΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΊΠ°ΠΊ unmerged
. Git Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΊΠ΅ΡΡ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΡΡΡΡ ΠΈΡ
Π²ΡΡΡΠ½ΡΡ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ. ΠΠ°Ρ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
<<<<<<< HEAD:index. html
=======
>>>>>>> iss53:index.html
Π Π²Π΅ΡΡ
Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ Π±Π»ΠΎΠΊΠ° (Π²ΡΡ ΡΡΠΎ Π²ΡΡΠ΅ =======
) ΡΡΠΎ Π²Π΅ΡΡΠΈΡ ΠΈΠ· HEAD
(Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ master
, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° Π½Π΅Ρ Π²Ρ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ merge), Π²ΡΡ ΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ β Π²Π΅ΡΡΠΈΡ Π² iss53
. Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π»ΠΈΠ±ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Π²ΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ:
ΠΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ½Π΅ΠΌΠ½ΠΎΠ³Ρ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΡΡΠΈ, ΠΈ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΡΠΎΠΊΠΈ <<<<<<<
, =======
ΠΈ >>>>>>>
. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΡΠ΅ΠΊΡΠΈΠΉ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git add
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°. ΠΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π΄Π»Ρ Git, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git mergetool
, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΡΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ:
$ git mergetool
merge tool candidates: kdiff3 tkdiff xxdiff meld gvimdiff opendiff emerge vimdiff
Merging the files: index. html
Normal merge conflict for ‘index.html’:
{local}: modified
{remote}: modified
Hit return to start merge resolution tool (opendiff):
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½Π΅ΠΆΠ΅Π»ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Git Π²ΡΠ±ΡΠ°Π» opendiff
Π΄Π»Ρ ΠΌΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° Mac). ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ βmerge tool candidates
β. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°. Π ΠΠ»Π°Π²Π΅ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Git ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π²ΡΠΉΠ΄Π΅ΡΠ΅ ΠΈΠ· ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Git ΡΠΏΡΠΎΡΠΈΡ Π²Π°Ρ, Π±ΡΠ»ΠΎ Π»ΠΈ ΠΎΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅ΡΠ΅, ΡΡΠΎ Π΄Π° β ΡΠ°ΠΉΠ» ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΡΠ΅ΡΡΡ (Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°), ΡΡΠΎΠ±Ρ Π΄Π°ΡΡ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½.
ΠΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git status
Π΅ΡΡ ΡΠ°Π·, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π±ΡΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ:
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD . .." to unstage)
#
# modified: index.html
#
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ, ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π²ΡΡ, ΠΈΠΌΠ΅Π²ΡΠ΅Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git commit
Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ, ΠΈ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈΡΡ, ΡΡΠΎ Π²ΡΡ, ΠΈΠΌΠ΅Π²ΡΠ΅Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, Π±ΡΠ»ΠΎ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git commit Π΄Π»Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ, Π΅ΡΠ»ΠΈ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠΎ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ.
Pro Git
Β«Git undo mergeΒ» — ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² git [Π£ΡΠ΅Π±Π½ΠΈΠΊ]
ΠΠ°ΡΠ΅ΠΌ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
β
ΠΠ½ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π΅Π³ΠΎ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Ρ Π½ΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ Π² Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΡΠ»ΠΈ Π±Ρ Π²Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ git merge —abort , ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ — Git Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠΈΡΡΠΈΡ, ΠΈ Π²Ρ ΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ΡΡ Π² ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»Π° Π²Π°ΡΠ° ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ Π²Π΅ΡΠΊΠ° ΡΠ°Π½ΡΡΠ΅.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π΅Ρ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ»ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΈ Π½Π° ΡΡΡ Π²Π΅ΡΠΊΡ.
ΠΌΠ°ΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ git
β
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Ρ ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ git log :
git log —oneline
β
ΠΡΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
β
Π₯Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ — ΡΡΠΎ ΡΡΡΠΎΠΊΠ° ΠΈΠ· ΡΠ΅ΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ.Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ `085974e` — ΡΡΠΎ Ρ Π΅Ρ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git revert , ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅:
git revert -m 1 [Ρ
Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ]
β
Π ΠΠΎΠ± ΡΠ²ΠΎΠΉ Π΄ΡΠ΄Ρ! ΠΠΎΠΌΠ°Π½Π΄Π° git revert ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄ΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΌ (ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ Π½Π° GitHub), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, ΠΈ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π³ΠΎΡΠΎΠ²ΠΎ.
β
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠΊΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ?
β
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Git ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ Ρ Π΅ΡΠ΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌ ΡΠΎΡΠΊΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ»Π° ΡΠ»ΠΈΡΠ° Π΄ΡΡΠ³Π°Ρ Π²Π΅ΡΠΊΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π±ΡΠ» ΡΠ°Π½Π΅Π΅.
git revert Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅, ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ ΡΠΎΡΠ½ΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π΅ΠΌΡ Π΄Π°Π΅ΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΈ Π½ΠΎΠ²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡ Π²Π°ΡΡ Π²Π΅ΡΠΊΡ Π² ΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½Π° Π±ΡΠ»Π° Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΠ΅ΡΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡ. ΠΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ git revert Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, ΠΈ Git Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π° Π΅Π³ΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ (ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ Π²ΠΌΠ΅ΡΡΠ΅), Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉΒ» — Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠ²ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ»ΠΈΠ»ΠΈΡΡ.
ΠΠΎΡ Π³Π΄Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π°Π³ -m — ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° 1 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²Π΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΡΠ°Π»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° 2 ΡΠΊΠ°Π·Π°Π»Π° Π±Ρ Π½Π° Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° in, ΡΡΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ). Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ `revert` ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
β
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ
β
ΠΠ±ΡΡΠ½Π°Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΌΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ — ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π²Π΅ΡΠΊΠΎΠΉ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΈΡΡ Π΅Π΅ ΠΏΠΎΠ·ΠΆΠ΅.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΡΠ΅, ΡΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎΠΌΠΌΠΈΡΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π½Π°Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ Π±Π΅Π· Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·.
ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ, ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ Git, ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ (Π²ΡΠ΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ½ΠΎΠΉ):
ΠΡΠΌΠ΅Π½Π° ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»Π° ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΠΎ ΠΎΡΠΌΠ΅Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ _data_, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ, Π½ΠΎ ΡΡΠΎ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½Π° _history_.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ, ΠΈ ΠΎΠ½ΠΎ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ Π²ΠΌΠ΅ΡΡΠ΅, ΠΈ Π±ΡΠ΄ΡΡΠΈΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ — ΠΈ ΠΎΡΠΊΠ°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΠΈΠ» Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ .
ΠΡΠ°ΠΊ, «Π²ΠΎΠ·Π²ΡΠ°Ρ» ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ _Π½Π΅_ «ΠΎΡΠΌΠ΅Π½Π°» Π² ΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΡΠ°ΠΊ, Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎ Β«ΠΎΡΠΊΠ°ΡΠ΅Β» ΠΊΠ°ΠΊ ΠΎΠ± Β«ΠΎΡΠΌΠ΅Π½Π΅Β», ΡΠΎ Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΡΡ ΡΠ°ΡΡΡ ΠΎΡΠΊΠ°ΡΠ°. ΠΠ°, ΠΎΠ½ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π½ΠΎ Π½Π΅Ρ, ΠΎΠ½ Π½Π΅ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠΈΡ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎΠ»Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ Π·Π΄Π΅ΡΡ. ΠΠ½ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ, ΡΠ΅ΠΌ ΡΡΠ° ΡΡΠ°ΡΡΡ, Π½ΠΎ Π²ΠΎΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡΠ³Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ:
ΠΡΠ»ΠΈ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½Π°Ρ Π±ΠΎΠΊΠΎΠ²Π°Ρ Π²Π΅ΡΠ²Ρ Π±ΡΠ»Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠΏΡΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π²Π²Π΅ΡΡ Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΎΡΠΊΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΎΡΠΊΠ°ΡΠ° Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ.
ΠΡΠ»ΠΈ ΡΠ±ΠΎΠΉΠ½Π°Ρ Π±ΠΎΠΊΠΎΠ²Π°Ρ Π²Π΅ΡΠ²Ρ, ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»ΠΈ ΠΎΡΠ±ΡΠΎΡΠ΅Π½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΎΡΠΊΠ°ΡΠΎΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½Π° Ρ Π½ΡΠ»Ρ (Ρ.Π΅. ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π²Ρ, ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΈΡΡΠΎΠ»ΠΊΠΎΠ²Π°Π»ΠΈ), ΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π΅Π»ΠΎ.
β
ΠΡΠΈΠ½ΡΡΠΈΠ΅ ΠΏΡΠ΅Π²Π΅Π½ΡΠΈΠ²Π½ΡΡ ΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊ ΡΠ»ΠΈΡΠ½ΠΈΡ
β
ΠΡΠΌΠ΅Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΡ — Π·Π°Π½ΡΡΠΈΠ΅ Π½Π΅ΠΏΡΠΎΡΡΠΎΠ΅. ΠΡΠΎ ΠΎΡΠ½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ±ΠΈΠ²Π°Π΅Ρ Ρ ΡΠΎΠ»ΠΊΡ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Git.ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΡΠ΅Π²Π΅Π½ΡΠΈΠ²Π½ΡΠ΅ ΠΌΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ°ΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ»ΡΡΡΠΈΡΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ΅Π² ΠΊΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π°ΡΠΈ Π·Π°ΠΏΡΠΎΡΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡ Π·Π° Π½ΠΈΠΌΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΊ Datree, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π² ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΡΡΠ° Π²Π°ΡΠ΅ΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ.
β
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ — ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ HEAD.(ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π² ΡΠ΅Π»ΠΎΠΌ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΎΠ±Π·ΠΎΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ git merge.)
Π ΡΡΠΎΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git!
Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° ΠΏΠΎ Git
ΠΠ΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π²ΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Β«Π¨ΠΏΠ°ΡΠ³Π°Π»ΠΊΡ ΠΏΠΎ GitΒ» — Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git reset Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π»ΡΡΡΠΈΡ
Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² Git — ΡΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅.Π, ΠΊ ΡΡΠ°ΡΡΡΡ, ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅! ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΠ² Π΅Π΅:
$ git reset --hard
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ Ρ ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ git reset --hard HEAD ~ 1
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Β«HEAD ~ 1Β», Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Git Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π²ΠΈΠ·ΠΈΠ΅ΠΉ HEAD — ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ!
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΎΠ±ΠΎΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«—hardΒ». ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ Π Π°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ; Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ΅Π½Π½ΡΠ΅ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π½Π΅Π΅ git stash
.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°
ΠΡΠΌΠ΅Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΡ Π² ΠΠ°ΡΠ½Π΅
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Tower Git, ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ: ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ CMD + Z ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΈ Tower ΠΎΡΠΌΠ΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π·Π° Π²Π°Ρ!
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ Π²ΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΠΠ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΆΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ.
$ git revert -m 1
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
-
git revert
ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ , ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π ΡΡΠΎΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡgit reset
, Π³Π΄Π΅ ΠΌΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Β«ΡΠ΄Π°Π»ΡΠ΅ΠΌΒ» ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ. ΠΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉgit revert
— Π»ΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΆΠ΅ Π½Π°ΠΆΠ°Π»ΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. - ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ
-m 1
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Git, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π΄Π»Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ (ΡΡΠΎ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈ Ρ Π² ). - ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠ°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Ρ
ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ: Π΄Π»Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°
git reset
ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈgit revert
ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Ρ Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ.
Π£Π·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅
Git: ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΠ΅ ΠΎΠ΄Π½Ρ Π²Π΅ΡΠΊΡ Ρ Π΄ΡΡΠ³ΠΎΠΉ ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ ΡΠ΅ΡΠ°Π΅ΡΠ΅, ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Git.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΠΏΠΎ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ, Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ git revert
Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ΅. Π ΡΡΠΎΠΉ ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΠ±ΡΡΡΠ½Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Git, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ.
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ reflog
, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΡΡΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ:
$ git reflog
ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎ Π²Π΅ΡΠ½Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΡ
ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠ΅ Ρ
ΡΡΠΈ, ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΡ HEAD
ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
$ git reflog
8135d07 [email protected] {0}: commit (merge): ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π²Π΅ΡΠΊΡ local / bug-34 Π² local / master
03979c8 [Π°Π΄ΡΠ΅Ρ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½] {1}: commit: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°
9f7a993 [ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ° Π·Π°ΡΠΈΡΠ΅Π½Π°] {2}: commit (initial): Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset
, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΡ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΠΎ, ΠΏΠΎ ΡΡΡΠΈ, ΠΌΡ ΠΈ Π΄Π΅Π»Π°Π΅ΠΌ Π·Π΄Π΅ΡΡ:
$ git reset --hard
ΠΡΠ°ΠΊ, Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π°Ρ ΠΎΡΠ΅ΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Β«ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π·Π°ΠΏΡΠΎΡΠ°Β», ΡΡΠΎ ΠΌΡ Π±Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°ΠΊ:
$ git reset --hard 03979c8
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ --hard
Π²Π΅ΡΠ½Π΅Ρ ΠΊΠΎΠ΄ Π² Π΄Π΅ΡΠ΅Π²Π΅, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΡΡ
. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ, ΡΠΎ --merge
ΠΈΠ»ΠΈ --mixed
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π»Ρ Π²Π°Ρ Π»ΡΡΡΠΈΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ, Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ Π·Π° HEAD
, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ORIG_HEAD
ΠΊΠ°ΠΊ ΡΡΠ»ΡΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ reset
:
$ git reset --hard ORIG_HEAD
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ reflog
Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Ρ
ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ORIG_HEAD
ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ [Π·Π°ΡΠΈΡΠ° ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ] {1}
, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΎΠ΄Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ : ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΠΏΠΎ, Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Git
- Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ
- βΊ
- Git
- βΊ
- ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Git
- ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈ
- ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ
- ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ
- ΠΡΠΌΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
- ΠΡΠΌΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert
- ΠΠΎΠ·Π²ΡΠ°Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
- ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Git Merge
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
ΠΠ½ΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΎ-ΡΠΎ Π΅ΡΠ΅.ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΎΡΠΌΠ΅Π½Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² Git.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌΠΈΒΆ
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½Ρ git merge — Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ. ΠΠ½ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅.Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Ρ Π΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git reset --hard
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΈΡΡΠΈΡΡ Π²Π°ΡΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠΎΠΌ. Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠ½ Π½Π΅ Π»ΠΈΡΠ΅Π½ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ². ΠΡΠ»ΠΈ Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΠ²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ Ρ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½Π΅ ΠΎΠΆΠΈΠ΄Π°ΠΉΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Git ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π½Π°, ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΡΡΡΠ΄Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡΒΆ
ΠΡΠΌΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git resetΒΆ
Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π²ΡΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΠΈΠΆΠ΅:
git push origin HEAD --force
ΠΠΌΠ΅ΡΡΠΎ —force Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄: —force-with-lease , ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΡΠΌΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revertΒΆ
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log . ΠΠ°ΡΠ΅ΠΌ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Ρ Π΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git revert -m 1
Π‘ -m 1 Π²Ρ ΠΏΡΠΈΠΊΠ°Π·ΡΠ²Π°Π΅ΡΠ΅ Git Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ -m 2 .
ΠΠΎΠ·Π²ΡΠ°Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒΆ
ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠ΅, Π° Π½Π΅ ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π΄ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ. Π’Π°ΠΊ ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π² ΠΌΠ°ΡΡΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Ρ ΠΊ Π½Π΅ΠΌΡ, Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ. ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ git merge .ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ΅ΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Git MergeΒΆ
Git merge Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΠΎΠΌΠΌΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΡΠΈΡΠ°ΡΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ Π΄Π²ΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΡΡ Git ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠΎ ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΡΡ .
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΎΡΠ·ΡΠ²!
Π‘ΡΠΈΡΠ°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ? ΠΠ° ΠΠ΅Ρ
Π‘ΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅
Π£Π΄Π°Π»ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ / ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² git
Π£Π΄Π°Π»ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ / ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² git — Super User
Π‘Π΅ΡΡ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΡΠ΅ΠΊΠΎΠ²
Π‘Π΅ΡΡ Stack Exchange ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· 176 ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ² Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ Stack Overflow, ΠΊΡΡΠΏΠ½Π΅ΠΉΡΠ΅Π΅ ΠΈ ΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π΅ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ Π΄ΠΎΠ²Π΅ΡΠΈΠ΅ΠΌ ΠΎΠ½Π»Π°ΠΉΠ½-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ, Π³Π΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΈΡΡΡΡ, Π΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΡ ΠΊΠ°ΡΡΠ΅ΡΡ.
ΠΠΎΡΠ΅ΡΠΈΡΡ Stack Exchange
0
+0
- ΠΠ²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡΡΡ
ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ
Super User — ΡΡΠΎ ΡΠ°ΠΉΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠ½ΡΡΠ·ΠΈΠ°ΡΡΠΎΠ² ΠΈ ΠΎΠΏΡΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π·Π°ΠΉΠΌΠ΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΠ½ΡΡΡ.
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ ΡΡΠΎΠΌΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Ρ
ΠΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ
ΠΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ
ΠΡΡΡΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ Π³ΠΎΠ»ΠΎΡΡΡΡΡΡ ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡ Π½Π°Π²Π΅ΡΡ
Π‘ΠΏΡΠΎΡΠΈΠ»
ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ
65k ΡΠ°Π·
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ git, Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» Π²Π΅ΡΠΊΡ Π² master, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΡΠΏΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π΅Π»Ρ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ / Π²Π΅ΡΠΊΡ.
ΠΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ Π²Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (ΠΎΠ±ΡΡΠ½ΠΎ vi) ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΏΡΠΈΡΠ΅ΠΌ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ. Π£Π΄Π°Π»ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π²ΡΠΉΠ΄ΠΈΡΠ΅. ΠΡΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π²Π°ΡΡ Π²Π΅ΡΠΊΡ Π±Π΅Π· ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ.
Β«ΠΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉΒ» ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ — ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ Π² Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π½ΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π° ΠΈ Π±ΡΠ»Π° Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π°. ΠΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git revert
. ΠΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ.ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΡΡΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ 29 ΠΌΠ°Ρ.
ΠΡΡΠ΅ΠΉΠ½ΠΈΠΊ
3,7861010 Π·ΠΎΠ»ΠΎΡΡΡ Π·Π½Π°ΠΊΠΎΠ²2323 ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΡΡ Π·Π½Π°ΠΊΠ°2828 Π±ΡΠΎΠ½Π·ΠΎΠ²ΡΡ Π·Π½Π°ΠΊΠΎΠ²
3
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
, Π²ΠΎΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ.
- Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅
git log
, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ (ΡΠΌ. ΠΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅).
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΆΠ΅Π»ΡΡΠΌ.
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ — ΡΡΠΎ ΡΠ΅, ΡΡΠΎ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΊΠ°ΠΊ Merge: parent1 parent2
. Π‘Π΅ΠΉΡΠ°Ρ …
Π Π°ΡΡΠΊΠ°Π·:
- ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π²Π΅ΡΠ²ΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git revert
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΊΠΎΠ½ΡΠΎΠ»Ρ-m 1 vi
Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.ΠΠ°ΠΏΠΈΡΠΈΡΠ΅, ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅, Π²ΡΠΉΠ΄ΠΈΡΠ΅, Π³ΠΎΡΠΎΠ²ΠΎ!
ΠΠ»ΠΈΠ½Π½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ:
ΠΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π²Π΅ΡΠ²ΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ»ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅. Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π²Π΅ΡΠΊΠ°
test
, ΠΈ Ρ ΠΏΡΡΠ°ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π½Π΅Π΅ Π²Π΅ΡΠΊΡfeature / analytics-v3
.git revert
— ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π»ΡΠ±ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠΎ Π΅ΡΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠΉ ΡΡΡΠΊ ΠΏΡΠΈ ΠΎΡΠΌΠ΅Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΡΠ»ΠΈΡΠ½ΠΈΡ
. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π°Π³-m
, ΠΈΠ½Π°ΡΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ. Π‘ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, Ρ ΠΎΡΠΈΡΠ΅ Π»ΠΈ Π²Ρ Π²Π΅ΡΠ½ΡΡΡ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° Π½Π°parent1
ΠΈΠ»ΠΈparent2
ΡΠ΅ΡΠ΅Π·:
git revert <ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ> -m 1
(Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ parent2
)
git revert <ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ> -m 2
(Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ parent1
)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git log ΡΡΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡΡΠ΅ΠΌ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ΄ΡΠΈ, ΠΈ ΡΡΠΎ ΠΊΠΎΡΠ΅Π½Ρ Π²ΡΠ΅ΠΉ ΠΏΡΡΠ°Π½ΠΈΡΡ.
Π‘ΠΎΠ·Π΄Π°Π½ 09 ΠΈΡΠ».
1
Π‘ΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ JavaScript
ΠΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ
ΠΠ°ΠΆΠΈΠΌΠ°Ρ Β«ΠΡΠΈΠ½ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookieΒ», Π²Ρ ΡΠΎΠ³Π»Π°ΡΠ°Π΅ΡΠ΅ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Stack Exchange ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ cookie Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½Π°ΡΠ΅ΠΉ ΠΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ Π² ββΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² cookie.
ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΊΡΠΊΠΈ
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git
Π― ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, b1, ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, b2.Π Ρ b1, ΠΈ Ρ b2 Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ,
b1: c1 ---> c2 ---> c3
b2: c1 ---> c4 ---> c5
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Ρ b2 Ρ b1 ΠΈ Π½Π΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΠΈΡΡΠΎΡΠΈΡ b1 Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ b2 (c4, c5).
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π² Git?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ / ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ (ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π² Π²ΠΎΠΏΡΠΎΡΠ΅) Ρ ΠΏΠΎΠΌΠΎΡΡΡ
$ git reset --hard ORIG_HEAD
ΠΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊ git reset --hard ORIG_HEAD
ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΡΡΠ΄Π°, Π³Π΄Π΅ Π²Ρ Π±ΡΠ»ΠΈ, Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ. git reset --merge
ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠ΅ Π΄Π²Π° ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠ· ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ git reset:
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅
$ git pull (1)
ΠΠ²ΡΠΎ-ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½ΠΈΡΡΠΎΠ»
ΠΠΠΠ€ΠΠΠΠ’ (ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅): ΠΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π² Π½ΠΈΡΡΠΎΠ»Π°Ρ
ΠΡΠΈΠ±ΠΊΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ; ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
$ git reset --hard (2)
$ git pull. ΡΠ΅ΠΌΠ° / Π²Π΅ΡΠΊΠ° (3)
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ 41223 ... Π΄ΠΎ 13134 ...
ΠΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ° Π²ΠΏΠ΅ΡΠ΅Π΄
$ git reset --hard ORIG_HEAD (4)
1.ΠΠΎΠΏΡΡΠΊΠ° ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡΡ ΠΈΠ· Π°ΠΏΡΡΡΠΈΠΌΠ° ΠΏΡΠΈΠ²Π΅Π»Π° ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ²; Π²Ρ Π½Π΅ Π±ΡΠ»ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΡΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ·ΠΆΠ΅.
2. Β«pullΒ» Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π» ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Β«git reset --hardΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ Β«git reset --hard HEADΒ», ΠΎΡΠΈΡΠ°Π΅Ρ Π±Π΅ΡΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
3. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²Π΅ΡΠΊΠΈ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΎΠΉ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ Π±ΡΡΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠΎΡΠΊΠ΅ Π²ΠΏΠ΅ΡΠ΅Π΄.
4. ΠΠΎ Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π²Π΅ΡΠΊΠ° Π΅ΡΠ΅ Π½Π΅ Π³ΠΎΡΠΎΠ²Π° Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. "pull" ΠΈΠ»ΠΈ "merge" Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ½Π΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ Π² ORIG_HEAD, ΠΏΠΎΡΡΠΎΠΌΡ
ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π² ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΠΈΠΊ Π²Π΅ΡΠΊΠΈ Π΄ΠΎ ΡΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ½ΡΡΡ Π²Π½ΡΡΡΡ Π³ΡΡΠ·Π½ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
$ git pull (1)
ΠΠ²ΡΠΎ-ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π½ΠΈΡΡΠΎΠ»
Π‘Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ.
Π½ΠΈΡΡΠΎΠ» | 20 +++++ ----
...
$ git reset --merge ORIG_HEAD (2)
1. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Β«git pullΒ», Π΅ΡΠ»ΠΈ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ Ρ Π½ΠΈΠΌΠΈ.
2. ΠΠ·ΡΡΠΈΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π½Π΅ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅.ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ "git reset --hard ORIG_HEAD" ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ
Π³Π΄Π΅ Π²Ρ Π±ΡΠ»ΠΈ, Π½ΠΎ ΠΎΠ½ ΠΎΡΠΌΠ΅Π½ΠΈΡ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ. "git reset --merge" ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠΌΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ Git
Git — ΡΠ°Π½ΡΠ°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.ΠΠ²ΡΡΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΏΡΠ°Π²Π΄Π°?
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΠΏΠΎΡΠΎΠ±Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ …
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ±ΡΠΎΡ
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΆΡΡΠ½Π°Π» git, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»Π° ΡΠ»ΠΈΡΠ½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ±ΡΠΎΡΡΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° ΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ sha:
git ΠΆΡΡΠ½Π°Π»
git reset --hard COMMIT_SHA_REFERENCE
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΡΠΊΠ°Ρ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
git ΠΆΡΡΠ½Π°Π»
git reset --hard HEAD ~ NUMBER_OF_COMMITS_TO_ROLL_BACK
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠ»ΡΠ΄Ρ Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π΅!
ΠΠ»Π°Π²Π½ΡΠΉ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ²? ΠΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΡ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ!
Π‘Π±ΡΠΎΡ ΡΠ»ΠΈΡΠ½ΠΈΡ
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ:
git reset --merge ORIG_HEAD
ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π΅ΡΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ — Π΅ΡΠ»ΠΈ Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ Π³Π»Π°Π²Π½Π°Ρ Π²Π΅ΡΠ²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠ²ΡΡ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠΎΠ³Π΄Π° ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π΄Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
Π’Π°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΠΈΡΡΠΎΡΠΈΡ Git, ΡΡΠΎ Π·Π°ΠΏΡΡΡΠ²Π°Π΅Ρ / Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π°. ΠΡ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Π΅ΡΠ½ΠΎ, ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΠΌΠ΅Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΡΠ°ΠΊ, Ρ Π²Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ Π² Git.
ΠΠ°ΠΊΠΎΠΉ Π±Ρ Π²Π°ΡΠΈΠ°Π½Ρ Π²Ρ Π½ΠΈ Π²ΡΠ±ΡΠ°Π»ΠΈ, ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΡ ΠΈ, ΠΊΠ°ΠΊ ΠΈ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΅Π³ΠΎ Ρ ΡΠΌΠΎΠΌ!
ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ
Β«ΠΠ΅ΡΠ½ΡΡΡΡΡ ΠΊ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌ
.