ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° git: ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² — ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Git
ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² — ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Git
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Git
ΠΠΈΡ β ΡΠΈΡΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±ΠΎΡΡΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π°ΡΡΠΈΡΡΡΡ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. Π git ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ° ΠΊΡΠ°ΠΉΠ½ΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠΏΠ°ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ git clone
.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π½, Π½ΠΎ ΠΎΠ½ Π½Π°Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ? Π‘ΠΈΡΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ Π²ΡΠ΅ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π΄Π°ΠΆΠ΅ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²:
- ΠΠ°Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ Π½ΡΠΆΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ Β«ΠΎΡΠΊΠ°ΡΠΈΡΡΒ», ΡΡΠΎΠ±Ρ Π΄ΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ, ΠΈ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΈ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ
Git ΠΏΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Β«ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΏΠ΅ΡΡΠ΄Β». ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π³ΠΈΡΠΎΠΌ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΎΠ³ΠΎ. ΠΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ Π½ΠΎΠ²ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΌ ΠΊΠΎΠ΄ Π² Π½ΡΠΆΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΈ ΡΡΠ΅Π²Π°ΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ. ΠΠ± ΡΡΠΎΠΌ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΠΎΠ·ΠΆΠ΅.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅, Π²Π½ΡΡΡΠΈ git ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΎΡΠΌΠ΅Π½Ρ, Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°. Π‘ ΠΈΡ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ, Π° ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Β«ΠΎΡΠΊΠ°ΡΠ°Β» Π±ΡΡΡΡΡΠΌ.
Git revert
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ β ΠΎΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ½Π° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅ΡΡΡ. Π ΡΠΊΠ°ΠΌΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π² git Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΡΡΡΡΡ ΠΎΡΠΊΠ°Ρ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ git revert
:
# ΠΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½ΡΠΆΠ΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°
# ΠΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» PEOPLE.md
hexlet-git$: git revert aa600a43cb164408e4ad87d216bc679d097f1a6c
# ΠΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠΉ Π²Π²ΠΎΠ΄Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°
# ΠΠ±ΡΡΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ revert Π½Π΅ ΠΌΠ΅Π½ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΊΡΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ
[main 65a8ef7] Revert "remove PEOPLE. md"
1 file changed, 1 insertion(+)
create mode 100644 PEOPLE.md
# Π ΠΏΡΠΎΠ΅ΠΊΡ Π²Π΅ΡΠ½ΡΠ»ΡΡ ΡΠ°ΠΉΠ» PEOPLE.md
hexlet-git$ git log -p
commit 65a8ef7fd56c7356dcee35c2d05b4400f4467ca8
Author: tirion <[email protected]>
Date: Sat Sep 26 15:32:46 2020 -0400
Revert "remove PEOPLE.md"
This reverts commit aa600a43cb164408e4ad87d216bc679d097f1a6c.
diff --git a/PEOPLE.md b/PEOPLE.md
new file mode 100644
index 0000000..4b34ba8
--- /dev/null
+++ b/PEOPLE.md
@@ -0,0 +1 @@
+Haskell Curry
ΠΠΎΠΌΠ°Π½Π΄Π° revert «ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½ΠΎ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΠΎΠ³Π»Π°ΡΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠΎ. ΠΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΎ ΡΠ°ΠΊΠΎΠΌ Π½Π΅Π»ΡΠ·Ρ Π±ΡΠ»ΠΎ ΠΈ ΠΌΠ΅ΡΡΠ°ΡΡ.
Git reset
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ΄Π°Π»ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ git revert
, Π½ΠΎ ΡΠ°ΠΊ Π·Π°Π³ΡΡΠ·Π½ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΄Π΅Π»Π°Π½ Π±ΡΠ» ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΈ Π΅ΡΡ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ»ΡΡ Π½Π° Github, ΡΠΎ Π»ΡΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π±Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅.
Git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π°Π»ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠΎ ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Π½ΠΈ Ρ ΠΊΠΎΠ³ΠΎ, ΠΊΡΠΎΠΌΠ΅ Π²Π°Ρ.
ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° Github, ΡΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΈΡΡΠΎΡΠΈΡ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π»ΡΠ·Ρ, ΡΡΠΎ ΡΠ»ΠΎΠΌΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π²Π°ΠΌΠΈ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ.
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠ°ΠΊ:
# Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠ΄Π°Π»ΠΈΠΌ
hexlet-git$ echo 'test' >> INFO.md
hexlet-git$ git add INFO.md
hexlet-git$ git commit -m 'update INFO.md'
[main 17a77cb] update INFO.md
1 file changed, 1 insertion(+)
# ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ git push
hexlet-git$ git reset --hard HEAD~
HEAD is now at 65a8ef7 Revert "remove PEOPLE.md"
# ΠΡΠ»ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ git log, ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ
git reset
β ΠΌΠΎΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΠΌΠ΅ΡΡΠ°Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ»Π°Π³ΠΎΠ² ΠΈ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°Π±ΠΎΡΡ. Π‘ Π΅Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ (Π±Π΅Π· ΡΠ΄Π°Π»Π΅Π½ΠΈΡ) ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Π°Π±ΠΎΡΠ° Ρ Π½Π΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ git, Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΠΌΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΡΡ Π±Π°Π·Ρ.
Π€Π»Π°Π³ --hard
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅. ΠΠ΅Π· Π½Π΅Π³ΠΎ git reset
ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π½ΠΎ Π½Π΅ ΡΠ΄Π°Π»ΠΈΡ Π΅Π³ΠΎ, Π° ΠΏΠΎΠΌΠ΅ΡΡΠΈΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ. HEAD~
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°». ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Ρ
ΠΎΡΠ΅Π»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΡΠΎ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ HEAD~2
.
HEAD (Π³ΠΎΠ»ΠΎΠ²Π°) β ΡΠ°ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π² ΡΡΠΎΠΊΠ΅, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ git.
ΠΡΠ»ΠΈ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ»Π°Π³ --hard
, ΡΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΠ»Π°Π³ --mixed
. Π ΡΠ°ΠΊΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ reset ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
hexlet-git$ echo 'no code no pain' > README.md
hexlet-git$ git add README.md
hexlet-git$ git commit -m 'update README.md'
[main f85e3a6] update README.md
1 file changed, 1 insertion(+)
# Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΠ°ΡΡΠ²Π°Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
hexlet-git$ git reset HEAD~
Unstaged changes after reset:
M README.md
hexlet-git$ git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² Π½ΡΠΌ, Π½Π΅ ΠΏΡΠΎΠΏΠ°Π»ΠΈ. ΠΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠΈ.
Π‘Π°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ°
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΈΠ· ΡΡΠΎΠΊΠ°
- ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΊΡΡ Π½Π° No code No pain ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΡΡΠ΅ Π΅Π³ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ «update README.md»
- ΠΠ°Π»Π΅ΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Github
ΠΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ? ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅Β»
ΠΠ°ΠΌ ΠΎΡΠ²Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π₯Π΅ΠΊΡΠ»Π΅ΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΠ΄Π΅Π½ΡΡ.
ΠΡΠΈΠ±ΠΊΠΈ, ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π²ΠΎΠΏΡΠΎΡΡ >
ΠΠ°ΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΡ ΠΈΠ»ΠΈ Π½Π΅ΡΠΎΡΠ½ΠΎΡΡΡ?
ΠΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡ, Π½Π°ΠΆΠΌΠΈΡΠ΅
ctrl + enter
ΠΈ ΠΎΡΠΏΡΠ°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π½Π°ΠΌ. Π ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
Π΄Π½Π΅ΠΉ ΠΌΡ ΠΈΡΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΡ ΠΈΠ»ΠΈ ΡΠ»ΡΡΡΠΈΠΌ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²ΠΊΡ.
Π§ΡΠΎ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌ?
ΠΠ°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π» Β«ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅Β»:
- Π·Π°Π΄Π°ΠΉΡΠ΅ Π²ΠΎΠΏΡΠΎΡ. ΠΡ Π±ΡΡΡΡΠ΅Π΅ ΡΠΏΡΠ°Π²ΠΈΡΠ΅ΡΡ Ρ ΡΡΡΠ΄Π½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΏΡΠΎΠΊΠ°ΡΠ°Π΅ΡΠ΅ Π½Π°Π²ΡΠΊ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ ΠΈ Π² ΡΡΡΠ±Π΅, ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ;
- ΡΠ°ΡΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΎ ΡΠ²ΠΎΠΈΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΡ . ΠΡΠ»ΠΈ ΠΊΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΉ, ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΡΠ·ΡΠ² ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π»ΡΡΡΠ΅;
- ΠΈΠ·ΡΡΠΈΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ΅Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π½ΠΈΡ . ΠΡΠΎ Π±Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ.
ΠΠ± ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ Π½Π° Π₯Π΅ΠΊΡΠ»Π΅ΡΠ΅
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git?
Π― ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π» Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Git , Π½ΠΎ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» ΠΈΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ?
git
version-control
git-commit
undo
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
Hamza Yerlikaya Β Β
29 ΠΌΠ°Ρ 2009 Π² 18:09
25 ΠΎΡΠ²Π΅ΡΠΎΠ²
- git push, Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΠΉΡΠ΅ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² git ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΡΡ Π΅Π³ΠΎ. ΠΠ° ΠΌΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Ρ ΡΠ°ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π§Π΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΠΎΠ»ΠΊΠ½ΡΡΡ ΠΊΠΎΠ΄ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π ΠΠΠ. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΡ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠΎΠ³Π΄Π° Ρ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΎΠ΄ΠΈΠ½, ΡΡΠΎ Π½Π΅ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Ρ…
- Git —bare … ΠΏΠΎΡΠ΅ΠΌΡ fetch Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΏΠΎ GIT, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΠ» Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ JIRA, Π½ΠΎ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ (Π΄Π»Ρ ΠΌΠ΅Π½Ρ) ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π ΠΠΠ, ΠΌΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΡΡΠΎ myrepo. ΠΡΠ»ΠΈ Ρ Π΄Π΅Π»Π°Ρ git clone ΠΈ git pull, Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ…
23327
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ
$ git commit -m "Something terribly misguided" # (1)
$ git reset HEAD~ # (2)
<< edit files as necessary >> # (3)
$ git add ... # (4)
$ git commit -c ORIG_HEAD # (5)
- ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
- ΠΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ Ρ Π²Π°ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ (ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π²Π°ΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊΠ΅), Π½ΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ, Π½Π΅ΡΡΠ°Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ (ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΠ°ΠΊ «Changes, Π° Π½Π΅ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎ Π΄Π»Ρ commit» Π²
git status
, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ ΡΠ½ΠΎΠ²Π° ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ(ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ)). ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) 1, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎgit reset --soft HEAD~
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡ ΠΎΠΆ Π½Π°git reset HEAD~
2 , Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠΌΠΈ. - ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°.
git add
Π²ΡΠ΅, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠ²ΠΎΠΉ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.- ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°ΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
reset
ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π» ΡΡΠ°ΡΡΡ Π³ΠΎΠ»ΠΎΠ²ΠΊΡ Π².git/ORIG_HEAD
;commit
Ρ ΠΏΠΎΠΌΠΎΡΡΡ-c ORIG_HEAD
ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΆΡΡΠ½Π°Π»Π° ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ-C
.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ commit --amend
Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΈΡ
ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΈΡΡΠΎΡΠΈΠΈ (ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅), ΡΠΎ:
git push origin master --force
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΡΡΠΎΡ ΠΎΡΠ²Π΅Ρ:
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ HEAD ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎ? (ΠΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ Π³ΠΎΠ»ΠΎΠ²Π°) & ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²Π°ΠΌ git reflog
, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ SHA-1 Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°), ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ. ΠΠΎΠ»ΡΡΠΈΠ² ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅.
1 ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) . ΠΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ-ΡΡΠΎ git reset
(ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ , Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Ρ ΡΠ΅Ρ
ΠΏΠΎΡ), Π° Π·Π°ΡΠ΅ΠΌ git commit --amend
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΊΡΠΎΠ΅Ρ Π²Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
2HEAD~
— ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ HEAD~1
. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ HEAD Π² git? . ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Esko Luontola Β Β
29 ΠΌΠ°Ρ 2009 Π² 18:13
10880
ΠΡΠΌΠ΅Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠ³Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΎ, Π³Π΄Π΅ C-Π²Π°Ρ HEAD ΠΈ (F) — ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
(F)
A-B-C
β
master
ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠ΄Π΅ΡΠ½ΡΡ Π±ΠΎΠΌΠ±Ρ commit C ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π΅Π΅ Π½Π΅ Π²ΠΈΠ΄Π΅ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . Π’Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΡ ΡΡΠΎ:
git reset --hard HEAD~1
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ:
(F)
A-B
β
master
Π’Π΅ΠΏΠ΅ΡΡ B-ΡΡΠΎ HEAD. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ --hard
, Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) B.
ΠΡ , Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ commit C Π½Π΅ Π±ΡΠ» ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΎΠΉ, Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π»ΡΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ). ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠ½ΠΎΠ²Π° ΠΎΡΡΡΠ΄Π°, Ρ C Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅Π³ΠΎ HEAD:
(F)
A-B-C
β
master
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΎΡΡΠ°Π²ΠΈΠ² --hard
:
git reset HEAD~1
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°ΠΊΠΎΠ²:
(F)
A-B-C
β
master
Π ΠΎΠ±ΠΎΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
HEAD-ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ). ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ git reset HEAD~1
, Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Git ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD Π½Π°Π·Π°Π΄ Π½Π° ΠΎΠ΄Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ). ΠΠΎ (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ --hard
) Π²Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ. ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡ git status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² C. ΠΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ!
ΠΠ»Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Ρ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ :
git reset --soft HEAD~1
ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΠΊΠΎΠ΅, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΏΠΎΠΊΠΎΠ΅. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ git status
, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΠ½Π΄Π΅ΠΊΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠ΄Π΅Π»Π°ΡΡ git commit
, ΠΈ Π²Ρ Π±Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΠ»ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡ: ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Π΅ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ , ΠΊΠ°ΠΊ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½ Π²Π°ΠΌ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ΅Π½ ? ΠΠ΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Π²Π΅ΡΠ½ΠΎ?
ΠΠ΅Ρ, Π²ΡΠ΅ Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ. ΠΠ²Π΅Π΄ΠΈΡΠ΅ git reflog
, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ (ΡΠ°ΡΡΠΈΡΠ½ΡΡ
) ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² shas (ΡΠΎ Π΅ΡΡΡ Ρ
ΡΡΠ΅ΠΉ), ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈ. ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅…
1761
ΠΠΎΠ±Π°Π²Π»ΡΠΉΡΠ΅/ΡΠ΄Π°Π»ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅:
git rm classdir
git add sourcedir
ΠΠ°ΡΠ΅ΠΌ Π²Π½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ:
git commit --amend
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ, ΠΎΡΠΈΠ±ΠΎΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½Π°, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π·ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° — Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΆΠ°Π»ΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΠΆΠ°Π»ΠΈ, ΡΠΎ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
bdonlan Β Β
29 ΠΌΠ°Ρ 2009 Π² 18:16
1038
git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"
ΠΈΠ»ΠΈ
git reset --hard HEAD~1
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅Π·Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
.java
(ΠΈ Π»ΡΠ±ΡΡ
Π΄ΡΡΠ³ΠΈΡ
ΡΠ°ΠΉΠ»Π°Ρ
), ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠ΅Π»ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡ hard reset
Π΄ΠΎ HEAD-1
ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΠΊΠΎΠΏΠΈΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΏΠ΅ΡΠ΅Π΄ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ(ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ).
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Lennart Koopmann Β Β
29 ΠΌΠ°Ρ 2009 Π² 18:13
793
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅:
git rm --cached *.class
git add *.java
ΠΠ°ΡΠ΅ΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΡΡΠ½Π°Ρ Π²Π΅ΡΠ²Ρ, Π²Π½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡ:
git commit --amend
ΠΠ»ΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ±ΡΠ°Ρ Π²Π΅ΡΠ²Ρ, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ):
git commit -m 'Replace .class files with . java files'
( Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΡΡΡΡΠ°ΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²ΠΊΡ .)
ProTipβ’: Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ *.class
Π² gitignore , ΡΡΠΎΠ±Ρ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΠ»ΠΎΡΡ ΡΠ½ΠΎΠ²Π°.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°)-ΡΡΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ reset
.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Git Π½Π° Π»ΡΠ±ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) Ρ ΠΏΠΎΠΌΠΎΡΡΡ:
git reset @~N
ΠΠ΄Π΅ N
-ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎ HEAD
, Π° @~
ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΌΠ΅ΡΡΠΎ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΌΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
git reset @~
git add *.java
git commit -m "Add .java files"
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ git help reset
, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Ρ Π½Π° --soft
--mixed
ΠΈ --hard
, Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ.
Reflog
ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ΅ ΠΈΡΠΏΠΎΡΡΠΈΡΠ΅, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ»ΠΎΠ³ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠ±ΡΠΎΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:
$ git reset @~
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~
2c52489 HEAD@{1}: commit: added some .class files
$ git reset 2c52489
... and you're back where you started
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Zaz Β Β
31 ΠΈΡΠ»Ρ 2010 Π² 09:39
701
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git revert <commit-id>
.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) ID, ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git log
.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Jaco Pretorius Β Β
25 ΠΌΠ°Ρ 2012 Π² 16:04
547
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°), ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΠ΅ΡΡ ΠΎΠ± ΡΡΠΎΠΌ, ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. 1
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git reset HEAD
Π’Π΅ΠΏΠ΅ΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΈΠ· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π² Π½Π΅ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΉΠ»Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎ Π±Ρ Π²Ρ Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΉΡΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΠΎΠ²ΡΡ/Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ).
ΠΠΎΠ»ΡΡΠ΅
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Madhan Ayyasamy Β Β
31 ΡΠ½Π²Π°ΡΡ 2013 Π² 07:06
515
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Git Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ git undo
, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ). git undo 3
ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
nickf Β Β
13 Π΄Π΅ΠΊΠ°Π±ΡΡ 2011 Π² 10:18
481
Π― Ρ ΠΎΡΠ΅Π» ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. Π― ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Ρ ΠΎΡΠ΅Π» Π²Π΅ΡΠ½ΡΡΡΡΡ. ΠΠ°ΡΠ΅ΠΌ Ρ Π½Π°Π±ΡΠ°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅.
prompt> git reset --hard 5a7404742c85
HEAD is now at 5a74047 Added one more page to catalogue
prompt> git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
remote: bb/acl: neoneye is allowed. accepted payload.
To [email protected]:thecompany/prometheus.git
+ 09a6480...5a74047 master -> master (forced update)
prompt>
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
neoneye Β Β
06 Π°ΠΏΡΠ΅Π»Ρ 2012 Π² 13:58
452
Π― ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git rebase -i
Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ, Π³Π΄Π΅ Ρ ΠΌΠΎΠ³Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ
Π½ΡΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠ°ΠΊ ΠΏΡΡΠΌΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ Π·Π΄Π΅ΡΡ, Π½ΠΎ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ .
ΠΡΠ±Π΅ΡΠΈΡΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ Π²ΠΎΡ ΡΠ°ΠΊ (ΡΡΠΎΠ±Ρ Π·Π°ΡΡΡΠΈΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌΠΈ ΡΡΠ΅ΠΌΡ)
git rebase -i HEAD~3
ΠΡΠΈΠΌΠ΅ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ
pick aa28ba7 Sanity check for RtmpSrv port
pick c26c541 RtmpSrv version option
pick 58d6909 Better URL decoding support
ΠΠ°ΡΠ΅ΠΌ Git ΡΠ΄Π°Π»ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Steven Penny Β Β
25 ΠΎΠΊΡΡΠ±ΡΡ 2012 Π² 03:41
434
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git-gui (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ) Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ git commit --amend
. ΠΠ· GUI Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°).
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)
ΠΡΠΎΡΡΠΎ ΡΠ±ΡΠΎΡΡΡΠ΅ ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ gitk
ΠΈΠ»ΠΈ git rebase
). ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΡΠΎΡ
ΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° Π² Π²Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ»ΠΎ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ΅ ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git reset HEAD~1
.
ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ : Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git reset
-ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΠΊΠΎΠΏΠΈΡ Π² Π·Π°ΠΏΡΡΠ°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π― ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΈΠ·Π±Π΅Π³Π°ΡΡ ΡΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ±ΠΎΡ Π²ΠΈΡΠ½ΠΈ ( git-revert), ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ…
git revert --no-edit HEAD
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠ²Ρ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΉ(ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²) ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΠΎΠ±Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ .
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ: ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡ
ΡΠ°ΡΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎ-ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΊΠΎΠΏΠΈΡ Π²Π΅ΡΠ²ΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²Π΅ΡΠΊΠ΅.
git push --delete (branch_name) ## remove public version of branch
ΠΡΠΈΡΡΠΈΡΠ΅ ΡΠ²ΠΎΡ Π²Π΅ΡΠ²Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ Π΅Π΅…
git push origin (branch_name)
Π ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΡΠ°ΡΡΠ½ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΡΠΎΠ½ΡΡΠΎΠΉ. ΠΡΠΎΡΡΠΎ Π½Π°ΠΆΠΌΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ) (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» «ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ)» Π²ΡΡΠ΅), Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΊΠ²ΠΎΡ-ΡΠ»ΠΈΡΠ½ΠΈΠ΅ , ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Brent Bradburn Β Β
23 Π°ΠΏΡΠ΅Π»Ρ 2013 Π² 17:27
347
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π½Π°Π²ΡΠ΅Π³Π΄Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΈ Π²Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ — ΡΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°) ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
git log
Π’ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ —
git reset --hard <commit_id>
git push origin <branch_name> -f
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
poorva Β Β
17 ΠΌΠ°Ρ 2013 Π² 13:02
345
ΠΡΠ»ΠΈ Π²Ρ ΡΠΎΠ²Π΅ΡΡΠΈΠ»ΠΈ Ρ Π»Π°ΠΌ Π½ΠΎ Π½Π΅ ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈ,
git reset --soft HEAD~1
HEAD~1 -ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ commit before head. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ SHA-1 ΠΈΠ· hash, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. —soft option ΡΠ΄Π°Π»ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ(ΠΊΠΎΠΌΠΌΠΈΡ), Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ «ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ(ΠΊΠΎΠΌΠΌΠΈΡΠ°)», ΠΊΠ°ΠΊ Π²ΡΡΠ°Π·ΠΈΠ»ΡΡ Π±Ρ git status.
git rm —cached [files you do not need]
git add [files you need]
git commit -c ORIG_HEAD
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ gitk ΠΈΠ»ΠΈ git log —stat
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
egridasov Β Β18 ΠΈΡΠ»Ρ 2013 Π² 06:41
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΠ°ΠΊ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git?
Π― ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΡΠ΅ΠΌ-ΡΠΎ ΠΈ ΡΠ΅ΡΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ screwed…after, ΡΠΎΠ²Π΅ΡΡΠΈΠ² Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ . ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ: git reset —hard git rebase origin git fetch git pull…
ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Git Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ Π΄Π»Ρ git-svn
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π° Ρ Π·Π°ΠΏΡΡΠΊΠ°Ρ git svn dcommit git, ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² SVN Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ΄Π΅Π»Π°Π» Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Ρ SVN. ΠΡΡΡ Π»ΠΈ…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅?
Π― ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠ²Ρ Π² ΡΠ²ΠΎΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π ΠΠΠ, ΠΈ ΠΎΠ½Π° ΡΠΎΠ·Π΄Π°Π»Π° 26 Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ Ρ Ρ ΠΎΡΡ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠΎΡ merge, Π½ΠΎ ΠΎΠ½ Π΄ΡΠΌΠ°Π΅Ρ, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΊΡΡΠ½ΠΎ ΠΈ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ…
git push, Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΠΉΡΠ΅ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² git ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΡΡ Π΅Π³ΠΎ. ΠΠ° ΠΌΠΎΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Ρ ΡΠ°ΡΡΠΎ ΡΠΎΠ²Π΅ΡΡΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π§Π΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Ρ ΠΎΡΡ ΠΏΡΠΎΡΠΎΠ»ΠΊΠ½ΡΡΡ ΠΊΠΎΠ΄ Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π ΠΠΠ. Π Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΡ…
Git —bare … ΠΏΠΎΡΠ΅ΠΌΡ fetch Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ?
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΏΠΎ GIT, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΠ» Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ JIRA, Π½ΠΎ Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ (Π΄Π»Ρ ΠΌΠ΅Π½Ρ) ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π ΠΠΠ, ΠΌΡ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΡΡΠΎ…
ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Git, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ΄Π΅Π»Π°Π»?
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠ° Git. ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Ρ ΠΌΠΎΠ³ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π²Π²Π΅ΡΡ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ n ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²?
Π― ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ:- aaaaaaa Implement function A bbbbbbb Implement function B ccccccc Implement function C Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° , ΡΠΎ Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π°…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² git
Π― ΡΠΎΠ²Π΅ΡΡΠΈΠ» Π΄Π²Π° ΠΏΡΠ΅ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ Π½Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΠ»ΡΡ. ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π». Π― Π²ΡΠ΅Π³Π΄Π° Π΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ ΡΠ±ΡΠΎΡΠΈΡ Π΅Π³ΠΎ: git checkout master Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΠ°ΠΊΠΆΠ΅…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ git commit, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» ΠΏΠ΅ΡΠ²ΡΠΌ?
Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΠΎΡ ΡΠ°ΠΊ : ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git? ΠΠ΄Π½Π°ΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΌ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅…
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 10 ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΠΈ Π² git
Π― Ρ ΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 10 ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git. Π― Π·Π½Π°Ρ, ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git branch -r —sort=-committerdate , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎ…
Git: ΠΎΡΠΌΠ΅Π½ΠΈΡΡ merge
ΠΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Ρ Π΄Π²ΡΠΌΡ Π±ΡΠ°Π½ΡΠ°ΠΌΠΈ β
master
ΠΈΒrdsmanager_NG-1
.ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Β
rdsmanager_NG-1
Π±ΡΠ»ΠΈ ΡΠΌΠ΅ΡΠ΄ΠΆΠ΅Π½Ρ Π²master
.ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠ°Ρ ΠΎΠ΄ΠΈΠΌ Β«Π»ΠΈΡΠ½ΠΈΠΉΒ» ΠΌΠ΅ΡΠ΄ΠΆ:
D:RDSrdsmanager>git log commit d22654c64574d1f01ef49f12bf0688c7c9cc3c1d Author: Your Name <[email protected]> Date: Wed Sep 2 00:42:05 2015 +0300 11 commit 7bad6f70aa0d10717b55a141e9d85b4305ade67c Author: User Name <[email protected]> Date: Tue Sep 1 17:52:05 2015 +0300 NG-6727 RDSmanager user fixΠ Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β ΠΊΠΎΠΌΠΌΠΈΡ Ρ IDΒ d22654c64574d1f01ef49f12bf0688c7c9cc3c1d β Π½Π΅ Π½ΡΠΆΠ΅Π½.
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΎΡΠΊΠ°Ρ Π΄ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°:
D:RDSrdsmanager>git reset --hard 7bad6f70aa0d10717b55a141e9d85b4305ade67c HEAD is now at 7bad6f7 NG-6727 RDSmanager user fixΠ‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ:
D:RDSrdsmanager>git push --force origin master Total 0 (delta 0), reused 0 (delta 0) To git@bitbucket. domain/rdsmanager.git + d22654c...7bad6f7 master -> master (forced update)ΠΠΎΡΠΎΠ²ΠΎ:
D:RDSrdsmanager>git log commit 7bad6f70aa0d10717b55a141e9d85b4305ade67c Author: User Name <[email protected]> Date: Tue Sep 1 17:52:05 2015 +0300 NG-6727 RDSmanager user fix commit be299f2873ac3aa8f7b26c74914e65c022a82ddd Author: User Name <[email protected]> Date: Tue Sep 1 17:50:46 2015 +0300 NG-6727 RDSmanager user fixΠΡΠΌΠ΅Π½Π° ΠΎΡΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΠ΄ΠΆΠ°.
Π‘ΠΎΠ·Π΄Π°ΡΠΌ Π±ΡΠ°Π½Ρ Π·Π°Π½ΠΎΠ²ΠΎ, Ρ ID ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΎΡΠΌΠ΅Π½ΡΠ½:
D:RDSrdsmanager>git branch -f rdsmanager_NG-1 d22654c64574d1f01eD:RDSrdsmanager>git log commit d22654c64574d1f01ef49f12bf0688c7c9cc3c1d Author: Your Name <[email protected]> Date: Wed Sep 2 00:42:05 2015 +0300 11 commit 7bad6f70aa0d10717b55a141e9d85b4305ade67c Author: User Name <[email protected]> Date: Tue Sep 1 17:52:05 2015 +0300 NG-6727 RDSmanager user fixΠΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ½ΠΎΠ²Π° Π½Π° ΠΌΠ΅ΡΡΠ΅.
f49f12bf0688c7c9cc3c1dΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ:
D:RDSrdsmanager>git branch * master rdsmanager_NG-1ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ Π±ΡΠ°Π½Ρ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ:
D:RDSrdsmanager>git checkout rdsmanager_NG-1 Switched to branch 'rdsmanager_NG-1'D:RDSrdsmanager>git log commit d22654c64574d1f01ef49f12bf0688c7c9cc3c1d Author: Your Name <[email protected]> Date: Wed Sep 2 00:42:05 2015 +0300 11 commit 7bad6f70aa0d10717b55a141e9d85b4305ade67c Author: user Name <[email protected]> Date: Tue Sep 1 17:52:05 2015 +0300 NG-6727 RDSmanager user fixΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° ΠΌΠ΅ΡΡΠ΅.
ΠΠ°ΠΊ ΡΡΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ?! Git-ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΈΠ±Π»ΠΈΡΡ Π² GitβΠ΅, ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, β Π½Π΅ΠΏΡΠΎΡΡΠ°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Git β ΡΡΠΎ ΠΊΡΠΎΠ»ΠΈΡΡΡ Π½ΠΎΡΠ°, ΠΈΠ· ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Π²ΡΠ»Π΅Π·Π΅ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΡΠΈΡ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π²ΡΠ±ΡΠ°ΡΡΡΡ ΠΈΠ· ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
ΠΠΎΡ Π±Π»ΠΈΠ½, Ρ ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎ-ΡΠΎ Π½Π΅ ΡΠΎβ¦ Π£ Git Π²Π΅Π΄Ρ Π΅ΡΡΡ ΠΌΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ?!
git reflog # Π’ΡΡ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΡ, ΡΡΠΎ Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ # Π² Git Π²ΠΎ Π²ΡΠ΅Ρ Π²Π΅ΡΠΊΠ°Ρ . # Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π΅ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD@{index}. # ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠΎΡ, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡ ΡΠ»ΠΎΠΌΠ°Π»ΠΎΡΡ. git reset HEAD@{index} # ΠΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊ Π²Π°ΡΠΈΠΌ ΡΡΠ»ΡΠ³Π°ΠΌ.
Π’Π°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ, ΠΈ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΡ ΡΠ»ΠΎΠΌΠ°Π»ΠΎΡΡ.
reflog
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ β Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΠΌ ΡΠΎΠ³ΠΎ, ΠΊΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² Git.Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΊΠΎΠ΅-ΡΡΠΎ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ!
# ΠΠ½Π΅ΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ git add . # ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ. git commit --amend --no-edit # Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. # ΠΠΠΠΠΠΠΠ! ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½ΡΠΆΠ½Π° Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ-ΡΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ ΠΌΠ΅Π»ΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ±Π΅Π» ΠΏΠΎΡΠ»Π΅ Π·Π½Π°ΠΊΠ°
=
. ΠΠΎΠ½Π΅ΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, Π° ΠΏΠΎΡΠΎΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡrebase -i
, Π½ΠΎ ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π΄ΠΎΠ»ΡΡΠ΅.ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΈΠ½Π°ΡΠ΅ Π²Π°ΠΌ ΠΊΠΎΠ½Π΅Ρ.
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°!
git commit --amend # ΠΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π’ΡΠΏΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉβ¦
Π― ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ» ΡΡΠΎ-ΡΠΎ Π² ΠΌΠ°ΡΡΠ΅Ρ, Ρ ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» Π² Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ!
# ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠ°ΡΡΠ΅ΡΠ°. git branch some-new-branch-name # Π ΡΡΠ° β ΡΠ΄Π°Π»ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅Ρ-Π²Π΅ΡΠΊΠΈ. git reset HEAD~ --hard git checkout some-new-branch-name # Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ :)
ΠΠΎΠΌΠ°Π½Π΄Ρ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΠΊΡ. Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ
git reset HEAD@{ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ-ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ-ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²-Π½Π°Π·Π°Π΄}
Π²ΠΌΠ΅ΡΡΠΎHEAD~
.ΠΡ ΠΎΡΠ»ΠΈΡΠ½ΠΎ. Π― Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ» Π½Π΅ Π² ΡΡ Π²Π΅ΡΠΊΡ!
# ΠΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ. git reset HEAD~ --soft git stash # ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ Π½Π° Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ. git checkout name-of-the-correct-branch git stash pop # ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠ°ΡΡΡΠ΅ΡΡ ΠΈ Π·Π°ΠΊΠΈΠ½ΡΡΠ΅ Π²ΡΠ΅ ΡΡΠ°Π·Ρ. git add . git commit -m Β«Π’ΡΡ Π±ΡΠ΄Π΅Ρ Π²Π°ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅Β» # Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½ΡΠΆΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΠ½ΠΎΠ³ΠΈΠ΅ Π² ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
cherry-pick
, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎ Π΄ΡΡΠ΅.git checkout name-of-the-correct-branch # ΠΠ΅ΡΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ°. git cherry-pick master # Π£Π΄Π°Π»ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΠ°. git checkout master git reset HEAD~ --hard
Π― ΠΏΡΡΠ°ΡΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ diff, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Ρ, Π½ΠΎ
diff
ΠΏΡΡΡ, ΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΡΠ΅ΡΠ΅Π·add
). ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π°Π³.git diff --staged
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Β«ΡΡΠΎ Π½Π΅ Π±Π°Π³, Π° ΡΠΈΡΠ°Β», Π½ΠΎ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²Π·Π³Π»ΡΠ΄Π° ΡΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ.
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌΒ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ 5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°Π·Π°Π΄
# ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. git log # ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅Π»ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΊΡΡΡΠΈΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²Π²Π΅ΡΡ ΠΈ Π²Π½ΠΈΠ·. # Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Ρ ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. git revert [ΡΠΎΡ Ρ ΡΡ] # Git ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΡΠΌΠ΅Π½ΡΡΡΠΈΠΉ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ. # ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ.
ΠΠ°ΠΌ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ°ΡΡΠ²Π°ΡΡΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΠΈΡΡ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π·Π°ΠΌΠ΅ΡΠ°Ρ ΠΈΠΌΠΈ Π½ΠΎΠ²ΡΠ΅. ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ Π±Π°Π³, ΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
revert
.ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ, ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠ΅Π»ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ». ΠΠΎ ΡΠ»Π΅Π΄ΡΡ ΠΊΠ°Π½ΠΎΠ½Ρ GitβΠ°, ΡΡΠΎ Π±ΡΠ΄ΡΡ ΡΠΆΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρβ¦
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅
# ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ Ρ ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ. git log # Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Ρ ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. git checkout [ΡΠΎΡ Ρ ΡΡ] --path/to/file # Π’Π΅ΠΏΠ΅ΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΡΠ°ΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°. git commit -m Β«Π ΠΌΠ°ΠΉ Π³Π°Π΄Π±Π», Π²Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡΒ»
ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ
checkout
β Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΊΠ°ΡΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π°Ρ .ΠΠ°Π²Π°ΠΉ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΉ, ΠΠΈΡΠ°, Π²ΡΡ Ρ **Π½Ρ
cd .. sudo rm -r fucking-git-repo-dir git clone https://some.github.url/fucking-git-repo-dir.git cd fucking-git-repo-dir
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π΄ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ (Ρ. Π΅. ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ), ΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ.
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΡΡΠΈΡΠ΅Π»ΡΠ½Ρ ΠΈ Π½Π΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΡ.
# ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ origin. git fetch origin git checkout master git reset --hard origin/master # Π£Π΄Π°Π»ΠΈΡΡ Π½Π΅ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ. git clean -d --force # ΠΠΎΠ²ΡΠΎΡΠΈΡΡ checkout/reset/clean Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ.
***
ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΊΡΡΡΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, Π½ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ. ΠΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΡ:
Β
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ Β«Oh Shit, Git!?!Β»
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² GIT
ΠΠ΅ ΡΠ°ΡΡΠΎ, Π½ΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ ΠΏΠ»ΠΎΡ ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ.
Π‘ΠΈΡΡΠ°ΡΠΈΡ 1: ΠΠΎΠΌΠΌΠΈΡ ΠΏΠ»ΠΎΡ , Π½ΠΎ Π½Π΅ Π±Π΅Π·Π½Π°Π΄Π΅ΠΆΠ΅Π½
ΠΠ°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅ΡΠ΅ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π²Ρ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ commit. ΠΡΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ Π²ΡΠ΅ ΡΠ°ΠΊΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ.
ΠΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π° ΡΠ°ΠΉΠ»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΎΠΊΠ°ΠΆΡΡΡΡ Π² ΡΡΠ°ΡΡΡΠ΅ Β«ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°Β» (to be commited).
ΠΠΎΠΆΠ΅ΡΠ΅ Π²Π½ΠΎΡΠΈΡΡ ΠΏΡΠ°Π²ΠΊΠΈ.
Π‘ΠΈΡΡΠ°ΡΠΈΡ 2: ΠΠΎΠΌΠΌΠΈΡ Π±Π΅Π·Π½Π°Π΄Π΅ΠΆΠ΅Π½
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π³ΠΎΠ΄ΠΈΡΡΡ, ΠΈ Π»ΡΡΡΠ΅ Π±Ρ Π΅Π³ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΎ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ.
# ΡΠ»ΡΡΠ°ΠΉ 2: Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ
# ΡΠΌΠΎΡΡΠΈΠΌ Π΅Π³ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π½Π΅ΠΌΡ
git log
git reset —hard abcdef0104938745498374897043
# Π΄Π°Π»ΡΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ½ΡΡΡ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
git push —force
git
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠ°Π½Π½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² 24.11.2018 16:17 ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΊΠΎΠ½Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ.
ΠΠ°Π»ΠΎ Π±ΡΠΊΠ°ΡΡ? Π§ΠΈΡΠ°ΠΉΡΠ΅ Π΅ΡΡΠΎ !
ΠΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ Π²Π΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· origin
ΠΠΎΡΠ±ΡΡ 8, 2018 Π³.
ΠΠΎΠ³Π΄Π° ΡΡΠΎ ΡΠΎ Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, Π° Π·Π°ΡΠ»ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (origin)?
Π― ΠΏΡΠΈΠ±Π΅Π³Π°Ρ ΠΊ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π΅ΡΠ»ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ ΡΠ°Π· Π·Π°ΡΠ»ΠΈ Π² ΡΡΠΏΠΈΠΊ, Π°
[crayon-6065b1c4accd7959155698/]
ΡΡΠ΅Π±ΡΠ΅Ρ …Π§ΠΈΡΠ°ΡΡ
Π’ΠΎΠ½ΠΊΠΎΡΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² .gitignore
ΠΡΠ»Ρ 17, 2017 Π³.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Π² ΡΠ°ΠΉΠ»Π΅ .gitignore ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΊΠ°Π½ΠΈΡΡΠ΅ΠΌΡΡ GIT, Π²ΡΠ΅ ΡΠΎ ΡΡΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π½Π΅ Π½Π°Π΄ΠΎ. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ·Π΅Ρ-ΡΠ°ΠΉΠ»Ρ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π°ΡΡ ΠΈΠ²Ρ, Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ Ρ.ΠΏ.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠΏΠΎΠ²ΠΎΠΉ ΡΠ»ΡΡΠ°ΠΉ Π½Π°ΡΡΠΎΠ΅ΠΊ Π²Β .gitignore. …Π§ΠΈΡΠ°ΡΡ
ΠΡΠΌΠ΅Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π²Β Git
ΠΡ Π²ΡΠ΅Π³Π΄Π° Π³ΠΎΡΠΎΠ²Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°ΡΡ Π±Π΅ΡΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Git, ΠΈ ΡΡΠ° ΡΡΠ°ΡΡΡ Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. Git ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΡΡΡΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ! ΠΠ°Π²Π΅ΡΠ½ΡΠΊΠ° Π½Π° ΠΏΠ°ΠΌΡΡΡ Π²Π°ΠΌ ΡΠΆΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΡΡΡΡΡΠΈ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, ΡΡΠΎ Π² Π²Π°ΡΠΈ ΠΏΠ»Π°Π½Ρ ΠΎΠ½ΠΎ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΠ»ΠΎ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅β ΡΡΠΎ Π²Π΅Π»ΠΈΡΠ°ΠΉΡΠ°Ρ Π½Π΅ΡΠ΄Π°ΡΠ° Π²ΡΠ΅ΠΉ Π²Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π³Π»ΡΠ±ΠΎΠΊΠΈΠΉ Π²Π΄ΠΎΡ ΠΈ Π΄ΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°.
ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠΌΠ΅Π½Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Git. ΠΡΠΌΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ βΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΡΠ΅ΡΠΊΡβ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ Π΄Π²ΠΈΠ½ΡΡΡΡΡ Π΄Π°Π»ΡΡΠ΅.Β
ΠΡΠΌΠ΅Π½Π° GitΒ Add
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π² ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Git Π·Π²ΡΡΠΈΡ ΡΠ°ΠΊ: βΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ
git add
ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ?β ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°Π΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ Π²ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.ΒΠ Π΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ, Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΎΡΡΠΎΠ΅. Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ», ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git reset
:git reset <file>ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
git resetΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΠΎΡΠΊΠ°ΡΠ΅ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΠΉ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°Π½ΠΎ ΠΈ Π·Π°Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°
amend
, ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ½ΠΎΠ²Π°.ΒΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ GitΒ Merge
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ. ΠΠΎ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Ρ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΠΎΡΠΈΠ±ΠΊΡ! ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠΎΠ·Π½Π°Π»ΠΈ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΠ»Π°ΡΡΠ° βΠΎΡΠΌΠ΅Π½Π°β:
git revert
. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠΌΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅Ρ-Π²Π΅ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρgit checkout
:git checkout masterΠ‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³βββΠ·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git log
, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ID ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:git logΠΠ°ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΊ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
git revert -m 1 <ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ>ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ
-m 1
Β , Π²Ρ Π΄Π°Π΅ΡΠ΅ Git ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅: Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠ΅Ρ-Π²Π΅ΡΠΊΠΈ, ΠΊΡΠ΄Π° Π±ΡΠ» ΡΠΎΠ²Π΅ΡΡΠ΅Π½ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅-m 2
ΡΠΊΠ°Π·Π°Π»ΠΎ Π±Ρ Git Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π²Π΅ΡΠΊΠΈ, ΠΎΡΠΊΡΠ΄Π° ΠΏΡΠΈΡΠ΅Π» Π·Π°ΠΏΡΠΎΡ Π½Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.Git ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΈ Π²Π΅ΡΠΎΠΊ. Β
ΠΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡ GitΒ Reset
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΡΡΠΏΠ΅ΡΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset:
git reset β[emailΒ protected]{1}βΠ‘Π»Π΅Π΄ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git reflog
, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΆΡΡΠ½Π°Π» Π²ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ (Ρ.Π΅. ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΠΊ, ΡΠ±ΡΠΎΡ, ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅).ΒΠΡΠΌΠ΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π²Β Git
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ
git commit
. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.ΠΠΎΠΌΠ°Π½Π΄Ρ git reset ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:
git reset β soft HEAD~x (or git reset β soft commit hash). git reset β soft HEAD~x
ΠΠΌΠ΅ΡΡΠΎ
~x
Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠΈΡΠ»ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅~4
, ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΡΠ½ΠΈΠ·Ρ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΡΠΈΡΠ»ΠΎ,git resetβββsoft HEAD
ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ.ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git resetβββsoft HEAD
, ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π½ΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΠΈ Π² Π²Π°ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. ΠΠΎΡΡΠΎΠΌΡgit commit
ΡΠΎΠ·Π΄Π°ΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ βΠΎΠ±Π½ΡΠ»ΠΈΠ»ΠΈβ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ.ΠΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄βββΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°
git revert HEAD~x
(git resetβββhard commit hash
), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π²HEAD
, ΠΈ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ:git revert HEAD ~xΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌΠΈ.
ΠΡΠΌΠ΅Π½Π° GitΒ Rebase
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git rebase
Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ git ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π΅Π΅ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ. Π‘Π»Π΅Π΄ΠΎΠΌ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π²Π°ΡΠΈΠΌ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΠΌ, ΠΈ Π·Π°Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ΄Π΅Π»Π°Π½Π½ΠΎΠ΅.ΒΠ‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± βββ Π½Π°ΠΉΡΠΈ Π³Π»Π°Π²Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ, Π·Π°ΠΏΡΡΡΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git reflogΠ‘Π»Π΅Π΄ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΄Π° ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ
git reset
.git reset β hard [emailΒ protected]{5}Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°ΡΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π±ΡΠ»
HEAD5
.ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΡ ΠΈ Π²ΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² Git. Π₯ΠΎΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈ Π½Π΅Ρ, Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅:
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ W3docs: Undoing in Git
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git?
ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ½Π°, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅.
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ Π²Π°Ρ ΡΡΠΎ Π΅ΡΡΡ, Π³Π΄Π΅ C — ΡΡΠΎ Π²Π°ΡΠ° ΠΠΠΠΠΠ, Π° (F) — ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
(F) A-B-C β master
ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±Π½ΡΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ C ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π΅Π³ΠΎ Π½Π΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . Π’Ρ Π΄Π΅Π»Π°Π΅ΡΡ ΡΡΠΎ:
git reset --hard HEAD~1
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
(F) A-B β master
Π’Π΅ΠΏΠ΅ΡΡ Π — ΠΠΠΠΠΠ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ
--hard
, Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ B.ΠΡ , Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ commit C Π±ΡΠ» Π½Π΅ ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΎΠΉ, Π° Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π»ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠ½ΠΎΠ²Π° Π·Π΄Π΅ΡΡ, Ρ C Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠ΅ΠΉ Π³ΠΎΠ»ΠΎΠ²Ρ:
(F) A-B-C β master
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΎΡΡΠ°Π²ΠΈΠ²
--hard
:git reset HEAD~1
Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
(F) A-B-C β master
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ HEAD — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ a
git reset HEAD~1
, Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Git ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎ (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅--hard
) Π²Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ. ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡgit status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π² C. ΠΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ!ΠΠ»Ρ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ :
git reset --soft HEAD~1
ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΠΊΠΎΠ΅, Π½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΏΠΎΠΊΠΎΠ΅. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅
git status
, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ Π΅ΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡgit commit
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π».ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡ: ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠ°ΠΊ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ, ΡΡΠΎ ΠΎΠ½ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² ? ΠΠ΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, ΠΏΡΠ°Π²Π΄Π°?
ΠΠ΅Ρ, Π΅ΡΠ΅ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ. Π’ΠΈΠΏ
git reflog
ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ (ΡΠ°ΡΡΠΈΡΠ½ΠΎ) ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ Π¨ΠΠ‘ (ΡΠΎ Π΅ΡΡΡ, Ρ ΡΡ) , ΡΡΠΎ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ Π²ΠΎΠΊΡΡΠ³ Π² ΠΠ°ΠΉΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π²Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΠ»ΠΈ, ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ.:git checkout -b someNewBranchName shaYouDestroyed
ΠΡ ΡΠ΅ΠΉΡΠ°Ρ Π²ΠΎΡΠΊΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΠΌΠΈΡΠ΅ΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ Π² Git Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 90 Π΄Π½Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ ΡΠΏΠ°ΡΡΠΈ ΡΠΎΠ³ΠΎ, ΠΎΡ ΠΊΠΎΠ³ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Git — devconnected
ΠΡΠ»ΠΈ Π²Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΠ»ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΠΎΡΠ΅Π½Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ Π²Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git.
ΠΠ΄Π½Π°ΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ Π² Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git.
ΠΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π²Π½Π΅ΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git.
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Git ΡΠΎ ΡΠ±ΡΠΎΡΠΎΠΌ
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Git — Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ» Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ Β«βsoftΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Β«HEAD ~ 1Β».
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· Π²Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Git.
$ git reset - soft HEAD ~ 1
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΡΡΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ, Β«HEAD ~ 1Β» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ HEAD (ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ) Π½Π° ΠΎΠ΄Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ°Π½ΡΡΠ΅ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΆΡΡΠ½Π°Π»Π°.
$ git ΠΆΡΡΠ½Π°Π» --oneline 3fad532 ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ (HEAD) 3bnaj03 ΠΠΎΠΌΠΌΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ HEAD (HEAD ~ 1) vcn3ed5 ΠΠ²Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ HEAD (HEAD ~ 2)
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊΠΎΠ²ΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ?
ΠΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ , ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β«git addΒ» , ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΏΠΎ ΡΡΡΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡ Git.
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ Β«βsoftΒ» Git ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈΠ»ΠΈ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ Π²ΠΎΠΎΠ±ΡΠ΅.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Π² ΡΠ²ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ».
$ git log --oneline --graph * b734307 (HEAD -> master) ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "file1" * 90f8bb1 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * 7083e29 ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Β«git resetΒ» Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ Β«βsoftΒ» Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
$ git reset - ΠΌΡΠ³ΠΊΠ°Ρ ΠΠΠΠΠΠΠ ~ 1 $ git status Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠΈΠ»ΠΈΠ°Π»Π° ΠΠ°ΡΠ° Π²Π΅ΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ origin / master Π½Π° 1 ΠΊΠΎΠΌΠΌΠΈΡ. (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git push" Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²) ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git restore --staged
..." Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ) Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»: file1 $ git log --oneline --graph * 90f8bb1 (HEAD -> master) ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * 7083e29 ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ» Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ), Π½ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π°.
ΠΠ°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, Π²Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Git Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ±ΡΠΎΡ Git commit
Π ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΠΈΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π²Ρ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Ρ.
ΠΡΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ Β«βhardΒ».
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ» Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Β«βhardΒ» ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ HEAD (Β«HEAD ~ 1Β»).
$ git reset --hard HEAD ~ 1
ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Β«βhardΒ»: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, Π²Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°Π½Π΅Π΅, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«file1Β».
$ git log --oneline --graph * b734307 (HEAD -> master) ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "file1" * 90f8bb1 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * 7083e29 ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
$ git reset --hard HEAD ~ 1 HEAD ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° 90f8bb1 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git.
$ git status Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠΈΠ»ΠΈΠ°Π»Π° Π Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ / ΠΌΠ°ΡΡΠ΅ΡΠ΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git push" Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²) Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΡΡΠΎΠ΅
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ°ΠΉΠ» Π±ΡΠ» ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git (ΠΈΠ½Π΄Π΅ΠΊΡ + ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³)
Π‘ΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ ΡΠ±ΡΠΎΡ Git commit
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Git, ΡΠΎΡ ΡΠ°Π½ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π½ΠΎ ΠΠ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ» Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Β«βmixedΒ».Π ΡΠ΄ΠΎΠΌ Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Β«HEAD ~ 1Β» Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
$ git reset - ΡΠΌΠ΅ΡΠ°Π½Π½Π°Ρ ΠΠΠΠΠΠΠ ~ 1
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«file1Β» Π² ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
$ git log --oneline --graph * b734307 (HEAD -> master) ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "file1" * 90f8bb1 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * 7083e29 ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ» Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Β«βmixedΒ».
$ git reset - ΡΠΌΠ΅ΡΠ°Π½Π½Π°Ρ ΠΠΠΠΠΠΠ ~ 1
ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ Β«βmixedΒ» ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° Git, Π½ΠΎ Π½Π΅ ΠΈΠ· ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Β«βmixedΒ» — ΡΡΠΎ Β«ΡΠΌΠ΅ΡΡΒ» ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΈ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΠ±ΡΠΎΡΠΎΠΌ, ΠΎΡΡΡΠ΄Π° ΠΈ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.
$ git status Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ ΡΠΈΠ»ΠΈΠ°Π»Π° ΠΠ°ΡΠ° Π²Π΅ΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ origin / master Π½Π° 1 ΠΊΠΎΠΌΠΌΠΈΡ. (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git push" Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π²Π°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²) ΠΠ΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add
..." Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ) file1 Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add") ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΡ Π½Π°ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π°Ρ .
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert .
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Git, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git revertΒ» ΠΈ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, ΡΠΎ Π΅ΡΡΡ Β«HEADΒ» Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Π²Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ.
$ git revert HEAD
ΠΠΎΠΌΠ°Π½Π΄Π° Β«git revertΒ» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git resetΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΏΡΡΠ΅ΠΌ ΠΎΡΠΊΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Ρ Β«git resetΒ» Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈ Β«HEAD ~ 1Β», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ±ΡΠΎΡΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ HEAD, Π° Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠ½ΠΎΠ²Π° Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ, Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΎΡΠΌΠ΅Π½Π΅Π½Π°.
ΠΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git, Π½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
$ git log --oneline --graph * b734307 (HEAD -> master) ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "file1" * 90f8bb1 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * 7083e29 ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git revertΒ» Git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ Π²Π°Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΠ΅ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠ²ΡΠΌ Ρ Π΅ΡΠ΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
[master 2d40a2c] ΠΠ΅ΡΠ½ΡΡΡ "ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ file1" 1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 ΡΠ΄Π°Π»Π΅Π½ (-) ΡΠ΅ΠΆΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ 100644 ΡΠ°ΠΉΠ»1
Π’Π΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΡΠ²ΠΎΡ ΠΈΡΡΠΎΡΠΈΡ Git, Π²Ρ Π±Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π±ΡΠ»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ½ΠΎΠ²Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git log --oneline --graph * 2d40a2c (HEAD -> master) ΠΠ΅ΡΠ½ΡΡΡ "ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ file1" * 1fa26e9 ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ file1 * ee8b133 ΠΡΠΎΡΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ * a3bdedf ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ Π²Ρ ΡΠ²ΠΈΠ΄Π΅Π»ΠΈ Π²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git.
ΠΡ ΡΠ·Π½Π°Π»ΠΈ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Β« git reset Β» ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π°Ρ Π΅Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π»ΠΈ ΠΎ ΡΠ°Π·Π½ΠΈΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git reset ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git revert, ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΠΎ Git ΠΈΠ»ΠΈ ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ°Π·Π΄Π΅Π», ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΡΡΠΎΠΌΡ, Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½ΠΈΠΌ!
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ Git, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΡΡΡΡ Π½Π°ΡΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ:
ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ
— ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Git?
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅. Π― ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ 4 ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
Π²Π°ΡΠΈΠ°Π½Ρ 1:
git reset --hard
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΡΠΎ, Π³Π΄Π΅ C — ΡΡΠΎ Π²Π°Ρ HEAD, Π° (F) — ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
(Π) Π-Π-Π‘ β ΠΌΠ°ΡΡΠ΅Ρ
ΠΡ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΄Π΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ C ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠ΅ Π΅Π³ΠΎ Π½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΡΡΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΡ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΡΡΠΎ:
git reset --hard HEAD ~ 1
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
(Π) Π-Π β ΠΌΠ°ΡΡΠ΅Ρ
Π’Π΅ΠΏΠ΅ΡΡ B — ΠΠΠΠΠΠ.ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ
--hard
, Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ B.Π²Π°ΡΠΈΠ°Π½Ρ 2:
git reset
Π, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΡ C Π½Π΅ Π±ΡΠ»Π° ΠΊΠ°ΡΠ°ΡΡΡΠΎΡΠΎΠΉ, Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΈΠ±Π»Π°ΡΡ. ΠΡ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ , Π½ΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ Π»ΡΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠ°ΡΠ½Π΅ΠΌ ΡΠ½ΠΎΠ²Π° Ρ C Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ HEAD:
(Π) Π-Π-Π‘ β ΠΌΠ°ΡΡΠ΅Ρ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΎΡΡΠ°Π²ΠΈΠ²
--hard
:git ΡΠ±ΡΠΎΡΠΈΡΡ HEAD ~ 1
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
(Π) Π-Π-Π‘ β ΠΌΠ°ΡΡΠ΅Ρ
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ HEAD — ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅
git reset HEAD ~ 1
, Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Git ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD Π½Π°Π·Π°Π΄ Π½Π° ΠΎΠ΄Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠΎ (Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅--hard
) Π²Ρ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ. ΠΡΠ°ΠΊ, ΡΠ΅ΠΏΠ΅ΡΡgit status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΎΡΠΌΠ΅ΡΠΈΠ»ΠΈ Π² C. ΠΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ!Π²Π°ΡΠΈΠ°Π½Ρ 3:
git reset - soft
ΠΠ»Ρ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ :
git reset - ΠΌΡΠ³ΠΊΠ°Ρ ΠΠΠΠΠΠΠ ~ 1
ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΏΠΎΠΊΠΎΠ΅, Π½ΠΎ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΏΠΎΠΊΠΎΠ΅ Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ . ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
git status
, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΡΠΎ ΠΈ ΡΠ°Π½ΡΡΠ΅. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡgit commit
ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.Π²Π°ΡΠΈΠ°Π½Ρ 4: Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ
git reset --hard
ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²Π΅ΡΡ: ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΠ»ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ , ΠΊΠ°ΠΊ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, , Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° Π²Π°ΠΌ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ Π½ΡΠΆΠ½Π°? ΠΠ΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, ΠΏΡΠ°Π²Π΄Π°?
ΠΠ΅Π°, Π΅ΡΡΡ Π΅ΡΠ΅ ΡΠΏΠΎΡΠΎΠ± Π²Π΅ΡΠ½ΡΡΡ.ΠΠ²Π΅Π΄ΠΈΡΠ΅
git reflog
, ΠΈ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ (ΡΠ°ΡΡΠΈΡΠ½ΡΡ ) SHA-ΠΊΠΎΠ΄ΠΎΠ² ΡΠΈΠΊΡΠ°ΡΠΈΠΈ (ΡΠΎ Π΅ΡΡΡ Ρ ΡΡΠ΅ΠΉ), Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ. ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:git checkout -b someNewBranchName shaYouDestroyed
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π²ΠΎΡΠΊΡΠ΅ΡΠΈΠ»ΠΈ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡΡΡ Π² Git Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 90 Π΄Π½Π΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΈ ΡΠΏΠ°ΡΡΠΈ ΡΠΎΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈΡΡ ΠΈΠ·Π±Π°Π²Π»ΡΡΡΡΡ.
ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² git
ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² git — qaru
ΠΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΠ΅ΡΡ ΠΊ Stack Overflow , ΡΡΠΎΠ±Ρ ΡΡΠΈΡΡΡΡ, Π΄Π΅Π»ΠΈΡΡΡΡ Π·Π½Π°Π½ΠΈΡΠΌΠΈ ΠΈ ΡΡΡΠΎΠΈΡΡ ΡΠ²ΠΎΡ ΠΊΠ°ΡΡΠ΅ΡΡ.
Π‘ΠΏΡΠΎΡΠΈΠ»
ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ
235k ΡΠ°Π·ΠΠ° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΡΠΆΠ΅ Π΅ΡΡΡ ΠΎΡΠ²Π΅ΡΡ :
ΠΠ°ΠΊΡΡΡ 4 Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄.
ΠΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ Ρ ΡΠ΄Π΅Π»Π°Π»
git add.
ΠΈgit commit
Π² Π²Π΅ΡΠΊΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈdevelopment
. ΠΠΎ, ΠΊ ΡΡΠ°ΡΡΡΡ, Ρ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»git push
.ΠΡΠ°ΠΊ, Ρ Ρ ΠΎΡΠ΅Π» Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
Π― ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»
git reset --soft
ΠΈgit reset HEAD --hard
, Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ Ρ Π²ΡΠ΅ ΠΈΡΠΏΠΎΡΡΠΈΠ».ΠΠ°ΠΊ ΠΌΠ½Π΅ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ? Π― Ρ ΠΎΡΡ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΡΡΠ΄Π°ΡΡ
8,39322 Π·ΠΎΠ»ΠΎΡΡΡ Π·Π½Π°ΠΊΠ°3535 ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ²6565 Π±ΡΠΎΠ½Π·ΠΎΠ²ΡΡ Π·Π½Π°ΠΊΠΎΠ²
Π·Π°Π΄Π°Π½ 24 ΠΌΠ°Ρ ’16 Π² 20: 552016-05-24 20:55
chintan schintan s
4,9521313 Π·ΠΎΠ»ΠΎΡΡΡ Π·Π½Π°ΠΊΠΎΠ²3939 ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ²7070 Π±ΡΠΎΠ½Π·ΠΎΠ²ΡΡ Π·Π½Π°ΠΊΠΎΠ²
0
ΠΡΠΌΠ°Ρ, ΡΡ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΏΠΎΡΡΠ°ΡΠΈΠ». ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½), ΡΠΎΡ ΡΠ°Π½ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅).
Π‘ΠΎΠ·Π΄Π°Π½ 24 ΠΌΠ°ΠΉ 2016, Π² 21:02
ΡΠ³Π°Π΄ΡΠ²Π°ΡΡ
7,53511 Π·ΠΎΠ»ΠΎΡΡΡ Π·Π½Π°ΠΊΠΎΠ²1515 ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΡΡ Π·Π½Π°ΠΊΠΎΠ²2323 Π±ΡΠΎΠ½Π·ΠΎΠ²ΡΡ Π·Π½Π°ΠΊΠ°
10
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π°Π³Π°
--soft
git reset - ΠΌΡΠ³ΠΊΠ°Ρ ΠΠΠΠΠΠΠ ~ 1
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ :
ΠΠ»Ρ Windows Π·Π°ΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΡΡΠΈ HEAD Π² ΠΊΠ°Π²ΡΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
git reset --soft "HEAD ~ 1"
Π‘ΠΎΠ·Π΄Π°Π½ 24 ΠΌΠ°ΠΉ 2016, Π² 21:01
ΠΡΠ΅Π³Π΄Π° ΡΠΎΠ»Π½Π΅ΡΠ½ΠΎ, Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ»Π½Π΅ΡΠ½ΠΎ
28. 5k66 Π·ΠΎΠ»ΠΎΡΡΡ Π·Π½Π°ΠΊΠΎΠ²4141 ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΡΠΉ Π·Π½Π°ΠΊ7171 Π±ΡΠΎΠ½Π·ΠΎΠ²ΡΠΉ Π·Π½Π°ΠΊ
3
Stack Overflow Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ JavaScript
ΠΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ
ΠΠ°ΠΆΠΈΠΌΠ°Ρ Β«ΠΡΠΈΠ½ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookieΒ», Π²Ρ ΡΠΎΠ³Π»Π°ΡΠ°Π΅ΡΠ΅ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Stack Exchange ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ cookie Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½Π°ΡΠ΅ΠΉ ΠΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ Π² ββΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² cookie.
ΠΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookie
ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² git?
Π Π°ΡΡΠΈΡΡΡ ΡΠΎ, ΡΡΠΎ Ρ Π½Π°ΠΏΠΈΡΠ°Π» Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠ±ΡΠ΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ (ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ) ΠΈΡΡΠΎΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΡΠΎ-ΡΠΎ ΠΌΠΎΠ³ ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π½Π° Π½Π΅ΠΉ.ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ (ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅) ΠΈΡΡΠΎΡΠΈΡ, Ρ Π²Π°Ρ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Ρ ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ.
ΠΡΠ°ΠΊ, ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ , ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git revert.
Π£ Π²Π°Ρ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ:
A <- B <- C <- D <- master <- HEAD(ΡΡΡΠ΅Π»ΠΊΠΈ Π·Π΄Π΅ΡΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: Β«ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠ°ΡΒ» ΡΡΡΠ»ΠΊΠ° Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π²Π΅ΡΡ Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²Π΅ΡΠΊΠΈ (ΡΡΡΠ»ΠΊΠ° Π²Π΅ΡΠΊΠΈ) ΠΈ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠ»ΠΊΠΈ HEAD).-1] ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ B, C, D. ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ° Π³ΠΎΠ²ΠΎΡΠΈΡ Π½Π°ΠΌ, ΡΡΠΎ (BCD) -1 = D -1 C -1 B -1 , ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:
$ git revert --no-commit D $ git revert --no-commit C $ git revert --no-commit B $ git commit -m "ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ "
Π Π°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ.
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ A ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.Π’Π°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
git stash
, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ½ΠΈ:$ git checkout -f A -. # ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² $ git commit -a
Π’ΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ:
A <- B <- C <- D <- A '<- master <- HEADΠ€ΠΈΠΊΡΠ°ΡΠΈΡ A 'ΠΈΠΌΠ΅Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ A, Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄ΡΡΠ³ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΠΎΠ΄ΠΈΡΠ΅Π»ΠΈ, Π΄Π°ΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ).
ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΠΆΠ΅ΡΡΠ° Π€Π΅ΡΠ»Π°Π½Π΄Π°, ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π§Π°ΡΠ»ΡΠ·ΠΎΠΌ ΠΠ΅ΠΉΠ»ΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΎ Π½Π° ΡΠΎΠΉ ΠΆΠ΅ ΠΈΠ΄Π΅Π΅, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ git reset. ΠΠΎΡ ΠΎΠ½ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄ΠΎΠΈΠ·ΠΌΠ΅Π½Π΅Π½, ΡΠ°ΠΊ Π ΠΠΠΠ’ΠΠΠ’ ΠΠ ΠΠ‘Π:
$ git reset --hard A $ git reset --soft D # (ΠΈΠ»ΠΈ ORIG_HEAD ΠΈΠ»ΠΈ @ {1} [ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ HEAD]), Π²ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ D $ git commit
Git Revert | Π£ΡΠ΅Π±Π½ΠΈΠΊ Atlassian Git
ΠΠΎΠΌΠ°Π½Π΄Ρ
git revert
ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΠΏΠ° Β«ΠΎΡΠΌΠ΅Π½ΠΈΡΡΒ», ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ.ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΎΠ½ Π²ΡΡΡΠ½ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ, ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΠΈ Git, ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΄Π»Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.Π Π΅Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½Π° Π±ΡΠ»Π° Π²Π½Π΅ΡΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ.ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ Π²Ρ ΠΎΠ΄ΠΈΡΡ, ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
git revert
, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π·Π° Π²Π°Ρ.ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
$ mkdir git_revert_test
$ cd git_revert_test /
$ git init.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Π² /git_revert_test/.git/
$ touch demo_file
$ git add demo_file
$ git commit -am "initial commit"
[master (root-commit) 299b15f] initial commit
1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 0 Π²ΡΡΠ°Π²ΠΎΠΊ (+), 0 ΡΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-)
ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 100644 demo_file
$ echo "Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅" >> demo_file
$ git commit -am "Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»"
[master 3602d88] Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
n 1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 Π²ΡΡΠ°Π²ΠΊΠ° (+)
$ echo "prepended line content" >> demo_file
$ git commit -am "Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ"
[master 86bb32e] Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ
1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 Π²ΡΡΠ°Π²ΠΊΠ° (+)
$ git log --oneline
86bb32e Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
3602d88 Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
299b15f Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΠΏΠΎ Π²ΠΎ Π²Π½ΠΎΠ²Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
git_revert_test
.ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ 3 ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΠ΅ΠΏΠΎ, Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»demo_file
ΠΈ Π΄Π²Π°ΠΆΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅. Π ΠΊΠΎΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΠΏΠΎ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌgit log
, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²ΡΠ΅Π³ΠΎ 3 ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΊΠ°Ρgit.
$ git revert HEAD [master b9cd081] ΠΡΠΌΠ΅Π½ΠΈΡΡ Β«Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»Β» 1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 ΡΠ΄Π°Π»Π΅Π½ (-)
Git revert
ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ»Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π°, ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· Π½Π΅Π΅. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈHEAD
ref. ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ3602d8815dbfa78cd37cd4d189552764b5e96c58
. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΎΡΠΊΠ°Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΊΡΠΎΠ΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΎ, Git Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠ°Π±ΠΎΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡgit log
ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΆΡΡΠ½Π°Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ½ΠΎΠ²Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ:$ git log --oneline 1061e79 ΠΡΠΌΠ΅Π½ΠΈΡΡ Β«Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»Β» 86bb32e Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» 3602d88 Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» 299b15f Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ 3-Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΠ°ΡΠ°.ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ,
git revert
Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ 2-Ρ ΠΈ 4-Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ Π±Π°Π·Ρ ΠΊΠΎΠ΄Π°, Π° 3-Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ Π½Π° ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΠΌΡ Π·Π°Ρ ΠΎΡΠΈΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π½Π΅ΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.ΠΠ±ΡΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ
ΠΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΡΠ° ΠΎΠΏΡΠΈΡ ΠΎΡΠΊΡΠΎΠ΅Ρ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡ Π²Π°ΠΌ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΡΠΊΠ°ΡΠ°
ΠΡΠΎ ΠΈΠ½Π²Π΅ΡΡΠΈΡ ΠΎΠΏΡΠΈΠΈ
-e
.ΠΡΠΊΠ°Ρ Π½Π΅ ΠΎΡΠΊΡΠΎΠ΅Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ.Π‘Π±ΡΠΎΡ ΠΏΡΠΎΡΠΈΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ
git revert
ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ - ΠΎΠ½ Π½Π΅ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡΒ» ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠ΄Π°Π»ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. Π Git ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ±ΡΠΎΡΠΎΠΌ, Π° Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ.Git Revert Push Commit: ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ Ρ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (ΠΊΠΎΠΌΠΌΠΈΡΡ) Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅.
ΠΠ°ΡΠ΅ΠΌ ΠΌΠ½Π΅ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ?
Π ΡΠ²ΠΎΠ΅ΠΉ Π΄ΠΈΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΡΠΈΡΡΡ Π² Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΡΠΎΡΡΠΎΡΡΠ΅ΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²Π°ΠΆΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Π΄Π΅Π»Π°Ρ, ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ½ΠΎΠ³Π΄Π° Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ½ΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π½Π΅ Π΄Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠ°ΠΊΠΈΠΌ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ?
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ Ρ Π΅Ρ.Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ Π΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
git log
, ΡΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:ΠΊΠΎΡΠ΅Π½Ρ @ debian: / home / debian / test-project # git log commit <Ρ ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> ΠΠ²ΡΠΎΡ: ΠΠ·Π°Π±Π΅Π»Ρ ΠΠΎΡΡΠ°
ΠΠ°ΡΠ°: 4 ΡΠ΅Π²ΡΠ°Π»Ρ, 21:57:40 2018 +0000 <ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> commit <Ρ Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ> ΠΠ²ΡΠΎΡ: ΠΠ·Π°Π±Π΅Π»Ρ ΠΠΎΡΡΠ° ΠΠ°ΡΠ°: 4 ΡΠ΅Π²ΡΠ°Π»Ρ, 21:42:26 2018 +0000 <ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> (...) ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ
git log --oneline
, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄:ΠΊΠΎΡΠ΅Π½Ρ @ debian: / home / debian / test-project # git log --oneline <Ρ ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> <ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> cdb76bf ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠ΅ΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ d425161 ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ββΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ (...)
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
<Ρ Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ>
), ΠΊΠΎΡΠΎΡΠ°Ρ, ΠΏΠΎ Π²Π°ΡΠ΅ΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ, ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ°Π±ΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:git checkout <Ρ Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ>
ΠΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠΎΠΉ ΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
root @ debian: / home / debian / test-project # git checkout <Ρ Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° '
'.ΠΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Β«ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΠΠΠΠΠΒ». ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠΎΡΡΠ΅ΡΡΡΡ, Π²Π½Π΅ΡΡΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ , ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π»ΡΠ±ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠ΄Π΅Π»Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π±Π΅Π· Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΡΡ Π½Π° Π»ΡΠ±ΡΠ΅ Π²Π΅ΡΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ (ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΠΎΠ·ΠΆΠ΅), ΡΠ½ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ -b Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ checkout. ΠΡΠΈΠΌΠ΅Ρ: git checkout -b ΠΈΠΌΡ_Π½ΠΎΠ²ΠΎΠΉ_Π²Π΅ΡΠΊΠΈ HEAD ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² <Ρ Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> ... <ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> ΠΠΎΡΠ»Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ?
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ / ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ρ ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git log
:ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠΎ ΡΠ»ΠΎΠ²ΠΎΠΌ Β«ΠΠ΅ΡΠ½ΡΡΡΒ» Π² Π½Π°ΡΠ°Π»Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΠ΅ ΡΡΠ°ΡΡΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ HEAD ΠΎΡΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ ΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅.
ΠΊΠΎΡΠ΅Π½Ρ @ debian: / home / debian / test-project # git status ΠΠΠΠΠΠ ΠΎΡΠ΄Π΅Π»Π΅Π½Π° Π½Π° 69d885e (...)
ΠΡ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ ΠΈ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ HEAD ΠΊ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²Π΅ΡΠΊΡ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅:
git checkout <ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°>
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Ρ Π½Π°ΡΠ΅Π» ΡΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ - ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ - ΠΎΡ Atlassian, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Π΅Π·ΡΠΌΠ΅
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
git checkout
; Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ°Π±ΠΎΡΡΡ Π²Π΅ΡΡΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
git revert <Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Ρ ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ>
; Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΆΠ°ΡΡ ΡΡΡ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΠΈΠ»Π° Π²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΎΡΠ²Π°Π²ΡΡΡΡΡ Π³ΠΎΠ»ΠΎΠ²Ρ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
git checkout <ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°>
.ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΌΠ΅Π½Ρ Π² Twitter, LinkedIn, Github, Medium ΠΈ Π½Π° ΠΌΠΎΠ΅ΠΌ Π»ΠΈΡΠ½ΠΎΠΌ Π²Π΅Π±-ΡΠ°ΠΉΡΠ΅.
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git - WebStorm
ΠΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΡ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ:
Π ΠΎΠΊΠ½Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Alt + 0 Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΡΠΊΠ°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl + Alt + Z .ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ, ΠΈ ΠΎΠ½ΠΈ ΠΈΡΡΠ΅Π·Π½ΡΡ ΠΈΠ· Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
WebStorm ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅.
ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° ββΠ² Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΡΠΎ Π΅ΡΡΡ Π²Π΅ΡΠ²Ρ, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ --push Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ (Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΠΊΠΈ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ / ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΒ» Ctrl + Alt + S Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ | Git) ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Π΅ΡΠΊΠ° ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½Π°Ρ Π½Π° GitHub, WebStorm Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅Π΅ ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅.
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Git Alt + 9 ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΡΡΠ½Π°Π».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡΒ» Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ.
Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° Β«ΠΠΌΡΒ» ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ).
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠΏΡΠΈΡ Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«ΠΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΒ», Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ WebStorm Π·Π°ΠΏΠΎΠΌΠ½ΠΈΠ» Π²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°Π» ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌ.
ΠΡΠΌΠ΅Π½ΠΈΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΆΠ΅ Π±ΡΠ»Π° ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΠΎΠΉ.
- ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Β«ΠΡΡΠ½Π°Π»Β» Π² ΠΎΠΊΠ½Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Git Alt + 9 , ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Π΅Π΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡΒ» Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°ΠΉΠ»Π°. ΠΡΠΊΡΠΎΠ΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«Π€ΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉΒ» Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΡΠΈΠΊΡΠ°ΡΠΈΡΠΌ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΆΡΡΠ½Π°Π»Π°, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ .
ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ , ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΡΠ±ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎΠ³Π°ΡΡ.
ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΡΠΈΠ½ΡΡΡΒ», ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ Π² ΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ
WebStorm ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π½Π°ΠΆΠ°ΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΆΡΡΠ½Π°Π»Π° Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
- ΠΠ° ΠΏΠ°Π½Π΅Π»ΠΈ Β«ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΡΒ» ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ, ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ΠΠ΅ΡΠ½ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΒ» Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ.
ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½ΠΎΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ.
ΠΡΠ±ΡΠΎΡΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΡΠΌΠ΅Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²Π΅ΡΠΎΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π°ΠΆΠ°ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, Π½Π΅ ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ»Π΅Π΄ΠΎΠ² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊ ΠΈ Π»ΡΠ±Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡ Π²Π΅ΡΠ²Π΅ΠΉ, Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ --force, ΠΈ Π΅Π΅ Π½Π΅Π»ΡΠ·Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΠ²ΡΡ (ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Β«ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ / ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΒ» Ctrl + Alt + S Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ | GitΒ»). .
Π‘Π±ΡΠΎΡΠΈΡΡ Π²Π΅ΡΠ²Ρ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ Π² Π½Π°Π±ΠΎΡΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΡ ΡΠ°ΡΡΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠ±ΡΠΎΡΠ° HEAD ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π΄ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ (ΠΈ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠ±ΡΠΎΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ Π½Π΅ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΠΎΡΠΌΠ΅Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ).
ΠΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠΊΠ½ΠΎ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ Alt + 9 ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«ΠΡΡΠ½Π°Π»Β».
ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ HEAD, ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π‘Π±ΡΠΎΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ ΡΡΠ΄Π°Β» ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ.
- Π ΠΎΡΠΊΡΡΠ²ΡΠ΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Git Reset Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Reset:
Soft: Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠΌΠΈ (ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Β«ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΒ», ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈΡ ΠΈ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ·ΠΆΠ΅).
Π‘ΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ, Π½ΠΎ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΠ΅ΡΡΠΊΠΈΠΉ: Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ (ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠ΅, ΡΠ°ΠΊ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅).
Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ: Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π±ΡΠ΄ΡΡ ΠΎΡΠ±ΡΠΎΡΠ΅Π½Ρ, Π½ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΡΠ°Π½ΡΡΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ.
ΠΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΠ΅Π²ΠΈΠ·ΠΈΡ ΡΠ°ΠΉΠ»Π°
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π²ΠΌΠ΅ΡΡΠΎ ΠΎΡΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² Π»ΡΠ±ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ (Π² ΠΎΠΊΠ½Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Β«ΠΡΠΎΠ΅ΠΊΡΒ», Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Β«ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΒ» ΠΈ Ρ.