Soft git reset: —soft, —mixed(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), —hard / Π₯Π°Π±Ρ
—soft, —mixed(ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ), —hard / Π₯Π°Π±Ρ
Π ΠΌΠΎΠ΅ΠΌΡ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΡ Π½Π° ΡΠ΅Π»ΠΎΠΌ Ρ
Π°Π±ΡΠ°Ρ
Π°Π±ΡΠ΅ Π½Π΅Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π³Π΄Π΅ Π±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΡΠΎ 3 Π²ΠΈΠ΄Π° git reset
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΏΠΎ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΎΡΡΠΈ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Β«git resetΒ» Π°Π²ΡΠΎΡ ΠΏΠΈΡΠ΅Ρ ΡΡΠΎ Β«Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π²ΡΡ
Π²ΠΈΠ΄ΠΎΠ²: ΠΌΡΠ³ΠΊΠΎΠ³ΠΎ(soft reset) ΠΈ ΠΆΠ΅ΡΡΠΊΠΎΠ³ΠΎ(hard reset)Β». Π Π΅ΠΆΠΈΠΌ --mixed
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ ΡΠ΄ΠΎΡΡΠΎΠΈΠ»ΡΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ.
ΠΠΈΡΠ΅Π³ΠΎ ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ°ΡΡΠΎ Π²ΠΈΠ΄ΠΈΡΡ Π½Π΅ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΡΡΠ½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π²ΡΠ΅Ρ
ΡΡΡΡ
ΡΠ΅ΠΆΠΈΠΌΠ°Ρ
git reset
, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΏΠΈΠΊΠ° Π½Π΅ΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.
Π‘Π΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΡΠ°ΡΡΡ unstaged. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΡ
Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² git add
. ΠΠΎΠ³Π΄Π° Π²Ρ Π΄Π΅Π»Π°Π΅ΡΠ΅ git commit
, Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
git reset —soft
ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²Π΅ΡΠΊΡ:- A - B - C (master)
HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° C ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ C.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
git reset --soft B
HEAD Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° B ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡΠ° C Π±ΡΠ΄ΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²Ρ ΠΈΡ
Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git add
. ΠΡΠ»ΠΈ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git commit
Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΉ C.
git reset —mixed (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ)
Π Π΅ΠΆΠΈΠΌ --mixed
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Ρ.Π΅. git reset --mixed = git reset
ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΡΠ΅ΠΌ ΠΆΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌ:- A - B - C (master)
ΠΡΠΏΠΎΠ»Π½ΠΈΠ²
git reset --mixed B
ΠΈΠ»ΠΈ
git reset B
HEAD ΠΎΠΏΡΡΡ ΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° B, Π½ΠΎ Π½Π° ΡΡΠΎΡ ΡΠ°Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π‘ Π½Π΅ Π±ΡΠ΄ΡΡ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π·Π΄Π΅ΡΡ git commit
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Ρ.ΠΊ. Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. Π£ Π½Π°Ρ Π΅ΡΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π‘, Π½ΠΎ Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ git status
ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ not staged. Π§ΡΠΎΠ±Ρ ΠΈΡ
Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ
Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git add
ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ git commit
.
git reset —hard
Π’Π΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ:- A - B - C (master)
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ --hard
ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ --mixed
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ HEAD Π½Π° Π ΠΈ ΠΎΡΠΈΡΡΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡ, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ --mixed
ΠΆΠ΅ΡΡΠΊΠΈΠΉ reset ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ Π² Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ
git reset --hard B
ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π‘, ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ B. Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΡΡΠΎ ΡΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΏΠΎΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ git status
ΠΏΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΆΠ΅ΡΡΠΊΠΈΠΉ reset ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ ΡΡΠΎ Π½Π΅Ρ Π½Π΅Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ(ΠΈΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ Π½ΡΠΆΠ½Ρ).
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² git reset
:
ΠΌΠ΅Π½ΡΠ΅Ρ ΠΈΠ½Π΄Π΅ΠΊΡ | ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ | Π½ΡΠΆΠ½ΠΎ Π±ΡΡΡ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ | |
---|---|---|---|
reset --soft | Π½Π΅Ρ | Π½Π΅Ρ | Π½Π΅Ρ |
reset [--mixed] | Π΄Π° | Π½Π΅Ρ | Π½Π΅Ρ |
reset --hard | Π΄Π° | Π΄Π° | Π΄Π° |
ΠΡ ΠΈ Π½Π°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΎΠΉ: (thx to VBauer)
ΠΠΎΡΠΎΠ²ΠΈΠΌ git reset ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ / Π₯Π°Π±Ρ
ΠΡΠ΅Π½Ρ ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΠΈΠ· ΡΠ΅ΡΠΈΠΈ Β«Π₯ΠΎΠ·ΡΠΉΠΊΠ΅ Π½Π° Π·Π°ΠΌΠ΅ΡΠΊΡΒ».
ΠΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅
Π£ ΠΏΠ»ΠΎΡ
ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠΈΠΏΠ° ΠΌΠ΅Π½Ρ, ΡΠ°ΡΡΠΎ ΡΠ°ΠΊ Π±ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π°ΠΊΠΎΠΌΠΈΡΠΈΡΡ Π²ΡΡΠΊΠΎΠ³ΠΎ, Π° ΠΏΠΎΡΠΎΠΌ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎ Π½Π΅ ΡΠΎ ΠΈ Π½Π΅ ΡΡΠ΄Π°, Π½ΠΎ git ΠΏΠΎΠΌΠ½ΠΈΡ Π²ΡΡ ΠΈ Π²Π΅ΡΡ ΡΡΠΎΡ ΡΠ°Π·Π³ΡΠ» Π°Π½Π°ΡΡ
ΠΈΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ.
ΠΠ½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΊΠ°Π·Π°Π»ΠΎΡΡ ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Ρ Π½Π΅ Π½Π°ΡΠΈΠ½Π°Π» ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠ²Π΅ΡΠ° Π½Π° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ β ΠΊΠ°ΠΊ Π² git ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΠΌΠΈΡΡ β ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· ΠΌΠ½Π΅ ΡΡΠΎ Π½Π΅ ΡΠ΄Π°Π²Π°Π»ΠΎΡΡ.
Π Π²ΡΡ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΈ ΠΏΠΎΠΈΡΠΊΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΌΠ΅Π½Ρ ΠΊ rebase, Π° Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΊΠ°ΡΡ reset.
ΠΠ° ΠΌΠΎΠΉ Π²ΠΊΡΡ Π²ΠΎΠΏΡΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΡΠ½ ΠΈ ΠΌΠΎΡ Π·Π°ΠΌΠ΅ΡΠΊΠ° ΠΏΡΠΈΠ·Π²Π°Π½Π° Π·Π°ΠΊΡΡΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ±Π΅Π».
ΠΠ»Π³ΠΎΡΠΈΡΠΌ
- git status // ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΎ Ρ Π½Π°Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ
- git log // ΠΈΡΠ΅ΠΌ ΠΊΠ°ΠΌΠΈΡ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ
- sudo git reset —hard 7bcdf46b14b2dacc286b0ad469d5f9022d797f68 // ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΌΠΈΡ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°Π±ΡΡΡ Π½Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π²ΡΠ΅ ΠΊΠ°ΠΌΠΈΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π±ΡΠ΄ΡΡ Π·Π°Π±ΡΡΡ β ΡΠ΄Π°Π»Π΅Π½Ρ
- git push —force origin feature/draft // Π·Π°Π»ΠΈΠ²Π°Π΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ Π² ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ (Π²Π΅ΡΠΊΡ ΡΠ΅ΡΠ²Π΅ΡΠ°) β ΠΈΠ· ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ Π²ΡΠ΅ Β«Π»ΠΈΡΠ½ΠΈΠ΅Β» ΠΊΠ°ΠΌΠΈΡΡ
- ΠΠΎΠ±Π΅Π΄Π° !
ΠΡΠ»ΠΈ Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±, ΡΠΎ ΠΏΡΠΎΡΡ ΠΎΠ·Π²ΡΡΠΈΡΡ Π² ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ .
PS
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΊΠ°ΠΌΠΈΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π΅ ΡΠ΄Π°Π»ΡΡΡΡΡ, ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ ΡΠ²ΡΠ·Ρ ΡΡΠΈΡ
ΠΊΠ°ΠΌΠΈΡΠΎΠ² Ρ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΈ ΠΊΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΠΏΠ°Π΄Π°ΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ, Π½ΠΎ git ΠΏΠΎΠΌΠ½ΠΈΡ Π²ΡΡ.
PS2
ΠΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π½Π΅ Π½Π°ΡΠ»ΠΎΡΡ ( Π²Π°ΡΠΈΠ°ΡΠΈΠΈ Ρ rebase Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ ).
ΠΠΎ Ρ ΡΠΎΠ²Π°ΡΠΈΡΠ΅ΠΉ ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π² ΠΆΠΈΠ·Π½ΠΈ Π²ΡΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° Π½Π°Π΄ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΊΡΡΡΡ ΡΠΎΡΠ²Π°Π»ΠΎ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π²ΠΎΠ»ΡΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ.
Π’ΠΎΠ²Π°ΡΠΈΡΠΈ!
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ git reset β Π³ΠΎΠ΄Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΊΠ°ΠΌΠΈΡΡ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π΄Π²Π° ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ feature Π²Π΅ΡΠΊΠ΅.
git reset | Atlassian Git Tutorial
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
β ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ½Π° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΎΡΠΌΡ Π²ΡΠ·ΠΎΠ²Π°, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --soft, --mixed, --hard
. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠΈΡ
ΡΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Git: Π΄Π΅ΡΠ΅Π²Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² (HEAD
), ΡΠ°Π·Π΄Π΅Π»Ρ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ.
Git reset ΠΈ ΡΡΠΈ Π΄Π΅ΡΠ΅Π²Π° Git
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π² Git. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΡΠ΅ΠΌΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈΒ» Git. Β«ΠΠ΅ΡΠ΅Π²ΡΡΒ» β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΡΡΠΎΠ³ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΡΠ»ΠΎΠ²Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΎΠΊ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ β ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡΠΌ.
ΠΠ°ΡΠ½Π΅ΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄.
$ mkdir git_reset_test $ cd git_reset_test/ $ git init . Initialized empty Git repository in /git_reset_test/.git/ $ touch reset_lifecycle_file $ git add reset_lifecycle_file $ git commit -m"initial commit" [master (root-commit) d386d86] initial commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 reset_lifecycle_file
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΡΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ reset_lifecycle_file
. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ (d386d86
), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
ΠΠ΅ΡΠ²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, β ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
$ echo 'hello git reset' > reset_lifecycle_file
$ git statusΒ
On branch masterΒ
Changes not staged for commit:Β
(use "git add ..." to update what will be committed)Β
(use "git checkout -- ..." to discard changes in working directory)Β
modified: reset_lifecycle_file
Π Π½Π°ΡΠ΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΡΠ°ΠΉΠ» reset_lifecycle_file
. ΠΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Git Π·Π½Π°Π΅Ρ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Β«modifiedΒ».
Π Π°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ β ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add
, Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅. ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π ΡΠ΅Π»ΠΎΠΌ Git ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΡΡΡΡ ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git β git ls-files
. ΠΠΎΠΌΠ°Π½Π΄Π° git ls-files
ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
git ls-files -s 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git ls-files
Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ -s
(ΠΈΠ»ΠΈ --stage
). ΠΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° -s
Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git ls-files
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΉ ΠΈ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -s
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ β Π±ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π²ΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (d7d77c1b04b5edd5acfc85de0b592449e5303770
). ΠΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Ρ
Π΅Ρ SHA-1 ΠΎΠ±ΡΠ΅ΠΊΡΠ° Git, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ Ρ
Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². Π ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ
ΡΠ°Π½ΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ SHA ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈ ΡΡΡΠ»ΠΊΠΈ, Π° Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π΅ΡΡΡ ΡΠ²ΠΎΠΈ SHA ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
ΠΠ°Π»Π΅Π΅ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» reset_lifecycle_file
Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ².
$ git add reset_lifecycle_fileΒ
$ git statusΒ
On branch master Changes to be committed:Β
(use "git reset HEAD ..." to unstage)Β
modified: reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add reset_lifecycle_file
, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΡΠ°ΠΉΠ» reset_lifecycle_file
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠ΅Π΅ ΠΊΠΎΠΌΠΌΠΈΡΡ (Β«Changes to be committedΒ»). ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡΡΠΈΠ½Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠ²ΠΎΠ΄ git status
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.
$ git ls-files -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
ΠΠΈΠ΄Π½ΠΎ, ΡΡΠΎ SHA ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Ρ e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
Π½Π° d7d77c1b04b5edd5acfc85de0b592449e5303770
.
ΠΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ β ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΎΠΌΠ°Π½Π΄Π° git commit
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠΎΡ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
$ git commit -am"update content of reset_lifecycle_file" [master dc67808] update content of reset_lifecycle_file 1 file changed, 1 insertion(+) $ git status On branch master nothing to commit, working tree clean
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ Β«update content of resetlifecyclefile
Β». Π ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ·ΠΎΠ² git status
Π² ΡΡΠΎΠΉ ΡΠΎΡΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅ Π½Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠ»ΠΈ Π·Π° ΡΡΠΈΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΡΡ
, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
.
ΠΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΡΡ
ΠΎΠ΄Π½ΠΎ Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
. ΠΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git checkout
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ HEAD
, Π° git reset
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ. Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Π²Π΅ΡΠΊΠ΅ master
. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΠΊΡ master
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ d. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΎΠ±Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, git checkout b
ΠΈ git reset b.
, ΠΈ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
git checkout b
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout
ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ master
ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ d
. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ b
. Π Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΡΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
.
git reset b
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
, ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π΅ΡΠΊΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π². Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΡΠ»ΠΊΠΈ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --soft, --mixed
ΠΈ --hard
ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΊΡΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ --mixed
ΠΈ HEAD
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset --mixed HEAD
. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ HEAD
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ HEAD
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Ρ
Π΅Ρ SHA-1 ΠΊΠΎΠΌΠΌΠΈΡΠ° Git.
—hard
ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΡΠΌΠΎΠΉ, ΠΠΠΠ‘ΠΠ«Π ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --hard
ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ±ΡΠΎΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π»ΡΠ±Π°Ρ ΡΠ°Π±ΠΎΡΠ°, Π½Π°Ρ
ΠΎΠ΄ΠΈΠ²ΡΠ°ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π°.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΡΡΠ΅ΠΌΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ. Π‘Π½Π°ΡΠ°Π»Π° Π²Π½Π΅ΡΠ΅ΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ echo 'new file content' > new_file $ git add new_file $ echo 'changed content' >> reset_lifecycle_file
ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ new_file
ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
. Π ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΈ Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git status On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) new file: new_file Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: reset_lifecycle_file
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ: Π² Π΄Π΅ΡΠ΅Π²Π΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° new_file
, Π° Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ β ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΈΠ·ΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²:
$ git ls-files -s 100644 8e66654a5477b1bf4765946147c49509a431f963 0 new_file 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΉΠ» new_file
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ» reset_lifecycle_file
, Π½ΠΎ Π΅Π³ΠΎ SHA Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² (d7d77c1b04b5edd5acfc85de0b592449e5303770
) ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ. ΠΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add
Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset --hard
ΠΈ ΠΈΠ·ΡΡΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git reset --hard HEAD is now at dc67808 update content of reset_lifecycle_file $ git status On branch master nothing to commit, working tree clean $ git ls-files -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ» Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --hard
. ΠΡΠ²ΠΎΠ΄ Git ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, dc67808
. ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
. Git ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° new_file
. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²Π½Π΅ΡΠ»ΠΈ Π² ΡΠ°ΠΉΠ» reset_lifecycle_file
, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» new_file
ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Ρ. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ: Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
—mixed
ΠΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΡΠ»ΠΎΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. Π Π°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ.
$ echo 'new file content' > new_file $ git add new_file $ echo 'append content' >> reset_lifecycle_file $ git add reset_lifecycle_file $ git status On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) new file: new_file modified: reset_lifecycle_file $ git ls-files -s 100644 8e66654a5477b1bf4765946147c49509a431f963 0 new_file 100644 7ab362db063f9e9426901092c00a3394b4bec53d 0 reset_lifecycle_file
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²Π½Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ: Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» new_file
ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add
. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
$ git reset --mixed $ git status On branch master Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: reset_lifecycle_file Untracked files: (use "git add ..." to include in what will be committed) new_file no changes added to commit (use "git add" and/or "git commit -a") $ git ls-files -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ ΡΠ±ΡΠΎΡΒ». ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΡΠΎ --mixed
ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ git status
ΠΈ git ls-files
ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ» reset_lifecycle_file
. SHA ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ, ΡΡΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ reset_lifecycle_file
ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» new_file
. ΠΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ²Π½ΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --mixed
. Π Π°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½, Π° ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --hard
Π±ΡΠ»ΠΈ ΡΠ±ΡΠΎΡΠ΅Π½Ρ ΠΈ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΡΠΈΡ
ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ.
—soft
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° --soft
Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈ Π½Π° ΡΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ±ΡΠΎΡΠ° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ. Π Π°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ. Π§Π΅ΡΠΊΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π½Π°ΡΠΈΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ Π΅Π³ΠΎ ΠΊ ΠΌΡΠ³ΠΊΠΎΠΌΡ ΡΠ±ΡΠΎΡΡ.
$ git add reset_lifecycle_fileΒ
$ git ls-files -sΒ
100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_fileΒ
$ git statusΒ
On branch masterΒ
Changes to be committed:Β
(use "git reset HEAD ..." to unstage)Β
modified: reset_lifecycle_fileΒ
Untracked files:Β
(use "git add ..." to include in what will be committed)Β
new_file
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git add
, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» reset_lifecycle_file
Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½, ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git ls-files
. Π’Π΅ΠΏΠ΅ΡΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΡΡΡΠΎΠΊΠ° Β«Changes to be committedΒ» ΠΎΠΊΡΠ°ΡΠ΅Π½Π° Π² Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ. Π€Π°ΠΉΠ» new_file
ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΊ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ. Π£Π΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ rm new_file
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΎΠ½ Π½Π°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΌΡΠ³ΠΊΠΎ ΡΠ±ΡΠΎΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git reset --soft $ git status On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) modified: reset_lifecycle_file $ git ls-files -s 100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_file
ΠΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ». ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ git status
ΠΈ git ls-files
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ HEAD
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΆΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π½Π° HEAD
ΠΈ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Π½Π΅ΡΠ²Π½ΡΠΉ ΡΠ±ΡΠΎΡ Π΄ΠΎ HEAD
, Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ --soft
ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ HEAD
. Π£ Π½Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°ΠΉΠ» reset_lifecycle_file
, Π½Π°Ρ
ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
$ git commit -m"prepend content to reset_lifecycle_file"
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π² Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log
.
$ git log commit 62e793f6941c7e0d4ad9a1345a175fe8f45cb9df Author: bitbucket Date: Fri Dec 1 15:03:07 2017 -0800 prepend content to reset_lifecycle_file commit dc67808a6da9f0dec51ed16d3d8823f28e1a72a Author: bitbucket Date: Fri Dec 1 10:21:57 2017 -0800 update content of reset_lifecycle_file commit 780411da3b47117270c0e3a8d5dcfd11d28d04a4 Author: bitbucket Date: Thu Nov 30 16:50:39 2017 -0800 initial commit
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° Π²Π°ΡΠ΅ΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ Π½Π°Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° β 780411da3b47117270c0e3a8d5dcfd11d28d04a4
. ΠΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Β«initial commitΒ». Π’Π΅ΠΏΠ΅ΡΡ ΡΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΌΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π°Π·Π°Π΄ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git status && git ls-files -s On branch master nothing to commit, working tree clean 100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΡΠΎΡΡΠ°Π²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ git status ΠΈ
git ls-files -s
. ΠΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΉΠ» reset_lifecycle_file
Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π²Π΅ΡΡΠΈΠΈ 67cc52710639e5da6b515416fd779d0741e3762e
. ΠΠ΅ΡΠΆΠ° Π² ΡΠΌΠ΅ ΡΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π΄ΠΎ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
$git reset --soft 780411da3b47117270c0e3a8d5dcfd11d28d04a4 $ git status && git ls-files -s On branch master Changes to be committed: (use "git reset HEAD ..." to unstage) modified: reset_lifecycle_file 100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_file
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Β«ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ», Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠ°Π²Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΈ git ls-files
ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠΉ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, git status
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ reset_lifecycle_file
ΠΈ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ git ls-files
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈ SHA ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ: 67cc52710639e5da6b515416fd779d0741e3762e.
Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ±ΡΠΎΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log:
$ git log commit 780411da3b47117270c0e3a8d5dcfd11d28d04a4 Author: bitbucket Date: Thu Nov 30 16:50:39 2017 -0800 initial commit
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ log ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΎ ΡΠ΅ΡΠΊΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ --soft
. ΠΠ°ΠΊ ΠΈ ΠΏΡΠΈ Π²ΡΠ΅Ρ
Π²ΡΠ·ΠΎΠ²Π°Ρ
ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠ±ΡΠΎΡ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ --hard
ΠΈ --mixed
Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»ΠΈ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ΠΈ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ±ΡΠΎΡ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΠΈΠ²Π°ΡΡ Ρ ΡΠΎΠ»ΠΊΡ: ΠΏΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²? ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ --soft
Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π² Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git ls-files -s
, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅ΠΉ, ΡΡΠΎ SHA Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file
ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° git status
Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²Β», ΠΎΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΈΡ
Π² ΠΈΠ½Π΄Π΅ΠΊΡ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ git reset ΠΈ git revert
ΠΡΠ»ΠΈ git revert
β Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉΒ» ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΎ git reset
β ΠΎΠΏΠ°ΡΠ½ΡΠΉ. ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
Π΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΡΡΡ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ. Git reset
Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ
Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Ρ. Π΅. ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΏΡΡΡ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reflog
. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Β«ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°Β» Git Π½Π°Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Git Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠΎΡ Β«ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°Β» ΠΊΠ°ΠΆΠ΄ΡΠ΅ 30 Π΄Π½Π΅ΠΉ. ΠΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² β ΠΎΠ΄Π½ΠΎ ΠΈΠ· Β«ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² GitΒ»; Π΄Π²Π° ΠΎΡΡΠ°Π²ΡΠΈΡ
ΡΡ β ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ β Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Git, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π²Π°ΡΠΈΡ
Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ.
ΠΠΎΠΌΠ°Π½Π΄Π° revert ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π° git reset
β Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
ΡΠ΅Π»Π΅ΠΉ, ΠΈΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ: ΠΊΠΎΠΌΠ°Π½Π΄Π° reset ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΡΠ΅Ρ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° revert ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ.
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ reset Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset
, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π±ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ.
ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡ, ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π²Π°ΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΠΊΡΡΠΎΠΊ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ. ΠΠ° ΡΡ
Π΅ΠΌΠ΅ Π²Π½ΠΈΠ·Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΠ΅ΡΠΊΠ° origin/master
ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master
Π² ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset, Git Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΎΡΠΊΠ»ΠΎΠ½ΠΈΠ»Π°ΡΡ ΠΎΡ Π²Π΅ΡΠΊΠΈ origin/master
, Π° ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΎΠ±ΡΠ΅Ρ Ρ ΡΠΎΠ»ΠΊΡ Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π΅ΠΉ.
ΠΠΎΠΌΠ°Π½Π΄Ρ git reset
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ, Π° Π½Π΅ Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git revert
.
ΠΡΠΈΠΌΠ΅ΡΡ
git reset
Π£Π΄Π°Π»ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ», Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
git reset
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π²ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ Π½ΡΠ»Ρ.
git reset --hard
Π‘Π±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. Π€Π»Π°Π³ --hard
Π³ΠΎΠ²ΠΎΡΠΈΡ Git, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΠ°Π±ΠΎΡΠΊΠΈ.
git reset
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΉ , ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½ΠΎ Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅
, ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ
ΠΈ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΡ
ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
git reset --hard
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠ°Π½Π½ΠΈΠΉ
ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ hello.py
ΠΈ main.py
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
# Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² hello.py ΠΈ main.py # ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½Π΄Π΅ΠΊΡ Π²ΡΠ΅Ρ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° git add . # ΠΡΠΎΠ·Π½Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
hello.py ΠΈ main.py # Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ°Π·Π½ΡΡ
ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄Π° # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° main.py ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° git reset main.py # ΠΠΎΠΌΠΌΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»Π° hello.py git commit -m "Make some changes to hello.py" # ΠΠΎΠΌΠΌΠΈΡ ΡΠ°ΠΉΠ»Π° main.py Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ git add main.py git commit -m "Edit main.py"
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ Π½Π΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ.
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° `foo.py` ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° # ΠΠΎΠΌΠΌΠΈΡ ΡΠ°ΠΉΠ»Π° Π² ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° git add foo.py git commit -m "Start developing a crazy feature" # ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° `foo.py` ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π΄ΡΡΠ³ΠΈΡ
ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² # ΠΠΎΠΌΠΌΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ git commit -a -m "Continue my crazy feature" # Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ Π½Π΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² git reset --hard HEAD~2
ΠΠΎΠΌΠ°Π½Π΄Π° git reset HEAD~2
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π·Π°Π΄, ΠΏΠΎ ΡΡΡΠΈ ΡΠ΄Π°Π»ΡΡ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΎΠ±Π° ΡΠ½ΠΈΠΌΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎΡ Π²ΠΈΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
Π Π΅Π·ΡΠΌΠ΅
ΠΡΠ°ΠΊ, git reset
β ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Git. Git reset
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Β«ΡΡΠ΅ΠΌΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ GitΒ»: ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² (HEAD
), ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠΈΠΌ ΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡΠΌ. ΠΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β --soft, --mixed
ΠΈ --hard
β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git reset
.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Git Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
ΡΠΌ. Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
: git status, git log, git add, git checkout, git reflog
ΠΈ git revert
.
ΠΠ°ΡΠΈΠ½Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² git / Π₯Π°Π±Ρ
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ Π½Π°ΡΠΈΠ½Π°ΡΡ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ git’ΠΎΠΌ. Π ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΡ ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² β ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ. Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΎ Ρ ΠΎΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ . ΠΠ°Π»ΠΎΠ²ΡΡΠ²ΠΎ Ρ ΠΊΠΎΠΌΠ°Π΄Π°ΠΌΠΈ git’Π° Π±Π΅Π· ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ Ρ
ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
git checkout
ΠΈ git reset
Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ --soft
ΠΈ --hard
.
ΠΡΠ°ΠΊ, Π½Π°ΡΠ½ΡΠΌ ΠΊΡΠ°ΡΠΊΠΈΠΉ Π»ΠΈΠΊΠ±Π΅Π· ΠΏΠΎ ΠΌΠ°ΡΠΈΠ½Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ git’ΠΎΠΌ. Π‘ΠΏΠ΅ΡΠ²Π° ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ ΠΈΡΡΠΎΡΠΈΡ:
ΠΠ΄Π΅ΡΡ ΠΊΡΡΠΆΠΎΡΠΊΠ°ΠΌΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π§Π΅ΠΌ ΠΏΡΠ°Π²Π΅Π΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠ΅ΠΌ ΠΎΠ½ Π½ΠΎΠ²Π΅Π΅. ΠΠΎΠΌΠΌΠΈΡ Ρ Ρ ΡΡΠ΅ΠΌ 6e04e..-ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ½ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠΎΠΈΡ ΡΡΡΠ½ΠΈΡΡ ΡΠ΅Π±Π΅ Π½ΠΎΠ²ΠΈΡΠΊΡ, β ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΡ, Π° ΡΠΎΡΠ½Π΅Π΅ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Β«ΠΏΡΠΎΠ·Π²ΠΈΡΠ΅Β» ΡΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡ ΡΡΠΌΠ° ΡΡΠΌΡΡΠ°Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: HEAD, master, FETCH_HEAD, ORIG_HEAD ΠΈ Ρ.Π΄. ΠΡΠΎ Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ» ΠΊΡΡΠΏΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΡΠΎΠ·Π²ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΡΠ°ΠΌΠΈΠΌ, Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ Π²ΠΏΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ°ΠΎΡΡΡΠΈΠΌ Π½Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π²ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡ : master ΠΈ HEAD. master ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΌΡΠΉ ΡΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² Π²Π΅ΡΠΊΠ΅ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ master (ΡΡΠ° Π²Π΅ΡΠΊΠ° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ). HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ master (ΡΠΈΡΠ°ΠΉ, ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²). ΠΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, HEAD ΠΈ master ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ. Π ΡΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΠΌΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ, Π½Π΅ ΠΎΡΠΊΠ°ΡΠΈΠΌΡΡ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ, Π»ΠΈΠ±ΠΎ Π½Π΅ ΡΠΎΠ²Π΅ΡΡΠΈΠΌ ΡΡΠ΄ Π½Π΅ΠΎΠ±Π΄ΡΠΌΠ°Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠ°ΠΊ, ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ Π½Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ:
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° master, Π° master β Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ d79fbβ¦ ΠΡΡ ΠΈΠ²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ Π²Π΅ΡΡΠΈΠΉ, Π΅ΡΡΡ ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ HEAD. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ HEAD Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Ρ Ρ ΡΡΠ΅ΠΌ 6e04e.., ΡΠΎ ΡΠ°ΠΉΠ»Ρ ΠΎΠΊΠ°ΠΆΡΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ²ΠΎΡΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΠ»Ρ Β«Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡΒ» ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°: git checkout . Π’Π΅, ΠΊΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΠΎΡΡ ΡΡΡΡ-ΡΡΡΡ Ρ git’ΠΎΠΌ, ΡΠ·Π½Π°Π»ΠΈ Π² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ. ΠΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΠΎ β ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ ΠΌΡ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π²Π΅ΡΠΊΠΈ.
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD (git checkout
)
ΠΡΠΊΠ°Ρ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ checkout ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ»ΠΈ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π·Π°Π΄. ΠΡΠΎ Π²ΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ β ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΡΠ°ΠΆΠΎΠΊ Π² ΠΏΡΠΎΡΠ»ΠΎΠ΅, ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΌ ΠΏΠΎΠ΄Π³Π»ΡΠ΄Π΅Π»ΠΈ, Π½ΠΎ ΠΊΠ°ΠΊ Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π°Π·Π°Π΄? Π― Π²ΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Ρ ΡΠ²Π΅ΡΡ
ΠΏΠ°ΠΌΡΡΡΡ, ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ½Ρ Ρ
ΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΠΌΡΠΉ ΠΏΡΠ°Π²ΡΠΉ β d79fb..). ΠΡΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ git log
, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΈΡΡΠΎΡΠΈΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΡΡΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:
[user@localhost project]$ git log --pretty=oneline
6741a69bd121c295413be95d7597cd7409e713a0 add unit test
b3e74f50c3cc48e6b335014b6dc7e301b382a903 add readme
6e04e39d0952a2d6022502d56aaa05d5a064bea Initial commit
ΠΠ΅ΡΠΆΠ΅Π»ΠΈ ΠΌΡ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΈ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ? ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΡΠ°ΠΌΡΠΉ Β«Π½ΠΎΠ²ΡΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡ? ΠΡΠΎ Π½Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π΅ΡΡΡ Π²ΡΡ ΠΎΠ΄, ΠΈ ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ:
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git log --all
. ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ Π½Π°ΠΌ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ, Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ, Ρ.Π΅. Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ· ΠΏΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:[user@localhost project]$ git log --pretty=oneline --all d79fb5688af71b4577f450919535e7177e9d74e8 fix bug 478927e3a088d3cec489ca8810eaaca97c6ce0ff documentation 6741a69bd121c295413be95d7597cd7409e713a0 add unit test b3e74f50c3cc48e6b335014b6dc7e301b382a903 add readme 6e04ee39d0952a2d6022502d56aaa05d5a064bea Initial commit
ΠΠ°Π»Π΅Π΅ ΠΎΡΡΠ°ΡΡΡΡ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π½ΡΠΆΠ½ΡΠΉ Π½Π°ΠΌ Ρ ΡΡ ΠΈ Π²Π½ΠΎΠ²Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ:git checkout
. ΠΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. - Git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD. ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
git reflog
, Π½ΠΎ ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ Π΄Π»Ρ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π½Π°ΠΌΠΈ ΡΠ΅Π»Π΅ΠΉ. Π‘Π°ΠΌΠΎΠ΅ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎΠ΅ β ΡΡΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ: - ΠΡΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ master ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°ΠΌΡΠΉ ΡΠ²Π΅ΠΆΠ΅Π½ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°Ρ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git checkout master
. ΠΡΠ°-Π»Ρ:
ΠΠ»Ρ ΠΏΡΠΎΡΡΠ½Π΅Π½ΠΈΡ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° git checkout
ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ devel:
[user@localhost project]$ git checkout -b devel
*ΡΠ»Π°Π³ -b ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π΅ΡΠΊΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΡΠ°Π·Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π½Π΅Ρ.
ΠΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅ΠΌ ΡΠΎΠ²Π΅ΡΡΡΠ½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΊΠΈ devel.
ΠΠΎΡΠΎΠ΄ΠΈΠΌ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΡΡΠΎΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π² Π²Π΅ΡΠΊΡ master ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ:
[user@localhost project]$ git checkout master
ΠΡΠ°ΠΊ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ:
- ΠΠΎΠΌΠ½Π΄Π° git checkout ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ³Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ΠΠ΅ΡΠ΅Π½ΠΎΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΊΠΈ (git reset ...
)
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, git ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π²ΠΈΠ³Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ HEAD, Π½ΠΎ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ½Π΅ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΎΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git reset
Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ Π»ΠΈΠ±ΠΎ --soft
, Π»ΠΈΠ±ΠΎ --hard
.
- ΠΠ»ΡΡ
--hard
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΡΠ΅ΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ°Π΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΊΡΠ΄Π° Π±ΡΠ» ΡΠ΄Π΅Π»Π°Π½ reset. - ΠΠ»ΡΡ
--soft
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ ΠΠ ΡΠ΅ΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ ΡΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠ½ΡΡ, Ρ.Π΅. git status Π½Π°ΠΌ Π²ΡΠ΄Π°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ reset) ΠΈ ΡΠ΅ΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ reset.
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Β«ΠΏΡΠΎΠ·Π²ΠΈΡΠ΅Β» Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ» ΡΠΎΠ²Π΅ΡΡΡΠ½ reset β ORIG_HEAD.
git reset --hard HEAD~2
:
git reset --soft HEAD~2
:
ORIG_HEAD ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π²Π΅ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ (!). ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² Π΅Π΄ΠΈΠ½ΡΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ master Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½Π°Π·Π°Π΄:
[user@localhost project]$ git reset --soft HEAD~2
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
[user@localhost project]$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# Π§Π’Π-Π’Π Π’ΠΠ ΠΠΠ― ΠΠΠΠΠΠ’Π
#
ΠΡ Π° ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΡΡΡΠΊ β ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΡ
[user@localhost project]$ git commit -c ORIG_HEAD
ΠΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ β ORIG_HEAD ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ d79fbβ¦ ΠΡΠ»ΠΈ ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git checkout ORIG_HEAD, ΡΠΎ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ detach HEAD. ΠΠ½ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π΅ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΊΠΈ, Π° ΠΏΡΠΎΡΡΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ. HEAD Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π²Π΅ΡΠΊΠΈ!
Π§ΡΠΎΠ±Ρ Β«Π²ΡΠΉΡΠΈΒ» ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ detach HEAD Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ Π²Π΅ΡΠΊΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git checkout -b new_branch_name
ΠΡΠ°ΠΊ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΠΏΡΠ½ΠΊΡ:
git reset
Ρ ΠΊΠ»ΡΡΠ°ΠΌΠΈ--soft
ΠΈΠ»ΠΈ--hard
Π΄Π²ΠΈΠ³Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠΊΠΈ, Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD.
Π ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅! Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΈΠ· Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ git`ΠΎΠΌ β ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΠΊΠ°ΠΌΠΈ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅Π΄ΠΊΠΎ, Π½ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ!
Π£Π΄Π°ΡΠ½ΡΡ Π²Π°ΠΌ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠΉ ΠΏΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ!
ΠΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ:
Π‘Π°ΠΌΡΠΉ Π»ΡΡΡΠΈΠΉ manual β ΠΊΠ½ΠΈΠ³Π°: ProGit
ΠΠ°Π³Π»ΡΠ΄Π½Π°Ρ ΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎ git: A Visual Git Reference (Π ΡΡΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ)
UPD:
Π ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π»ΠΈ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠ΅ΡΡΡΡ ΠΏΠΎ git`Ρ: githowto
P.S. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π·Π° ΠΈΠ½Π²Π°ΠΉΡ ΠΈ Π²ΡΠ΅ΠΌ ΠΆΠ΅Π»Π°Ρ ΠΏΡΠΈΡΡΠ½ΡΡ Π²ΡΡ ΠΎΠ΄Π½ΡΡ !
ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π‘ΡΠ°ΡΡΡ «Git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ » Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°Π²ΡΠΊΠ° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ). Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ»Π°Π³Π°ΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Git init
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ .git
, Π³Π΄Π΅ Π±ΡΠ΄ΡΡ Ρ
ΡΠ°Π½ΠΈΡΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ git init
. ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Reinitialized existing Git repository in
.
GitΒ add
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ, Π½ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ *.< ΠΈΠΌΡ_ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ>
, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΡΡΠΈΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ:
git add *.py
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ»Π΅Π΄ΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΡ ΠΈΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ½Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ Π²ΡΠ΅ .py ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² models/directory:
git add models/\*.py
GitΒ clean
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΎΠΊ Π² Π²Π΅ΡΠΊΠ΅ Git, Π° ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΡΠΈ ΡΠ°ΠΉΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠ²ΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡ Π»ΠΈΡΠ½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² (ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git add) ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git clean -df
Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ untracked-ΡΠ°ΠΉΠ»Ρ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git clean -dn
GitΒ rm
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² ΠΏΠΎΠ΄Π±ΠΎΡΠΊΠ΅ «Git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ » ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ:
git rm <ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ>
ΠΡΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² staging-ΠΎΠ±Π»Π°ΡΡΠΈ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ»Π°Π³:
git rm <ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ> -f
ΠΠ° ΡΠ»ΡΡΠ°ΠΉ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π° Π² ΡΠ²ΠΎΠ΅ΠΉ Π€Π‘ ΠΎΡΡΠ°Π²ΠΈΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git rm --cached <ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ>
Git branch
ΠΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΡ Π² ΠΈΠΌΠ΅Π½ΠΈ Π²Π΅ΡΠΊΠΈ ΠΈΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΠΈΠΌΡ? Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Π°ΠΌ Π² ΠΏΠΎΠΌΠΎΡΡ:
git branch -m <ΡΡΠ°ΡΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> <Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠΌΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ:
git branch -m <Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ Π·Π°ΠΏΡΡΠΈΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ²:
git push <ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ> --delete <ΡΡΠ°ΡΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> git push <ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ> <Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
ΠΡΠ»ΠΈ ΠΈΠΌΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅ΡΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git push <ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ> <Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>:<ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ>
Git log
Π§ΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ Git ΠΊΠΎΠΌΠΌΠΈΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log. ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΡΠ΅Π΄ΠΈ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ commit id ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git log --oneline
ΠΠ½Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΡΠ²ΠΎΠ΄, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.
ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² β ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΠΉ commit id, Π° ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Commit id ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΡΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, Ρ. ΠΊ. «ΠΏΠΎΠ»Π½Π°Ρ Π²Π΅ΡΡΠΈΡ» ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠΎΡΠΎΠΊΠ° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΡ
Π½Π° 160-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ SHA1 Ρ
ΡΡ.
Head -> master β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π² Π²Π΅ΡΠΊΠ΅ master.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΡΠ°, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΡΠΎ:
git log --author="John Doe"
Git stash
ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΠ΄ Π²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° stash, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π² «ΡΠΈΡΡΠΎΡΠ΅»:
git stash
ΠΠ»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ:
git stash pop
Π Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ΡΠΌΠ°Π»ΠΈ, Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΎΡΠΊΠ°Ρ:
git stash drop
Git checkout
Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git checkout <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ Git ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π·ΠΈΡΡΡΡ Π½Π° Π΄ΡΡΠ³ΠΈΡ Π²Π΅ΡΠΊΠ°Ρ , Π° Π²Π°ΠΌ ΡΡΠΎ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ Π²Π΅ΡΠΊΠ° development, ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π΅ ΠΊΠΎΠΏΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² Π½Π΅Π΅ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ:
(development)$ git checkout -b <Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
Git commit
ΠΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ. Π’ΠΎΠ³Π΄Π° ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°Β β ΡΠΎ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ:
git commit --amend -m "ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅"
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ commit-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΡΠ»Π°Π³ΠΎΠΌ —no-edit:
git commit --amend --no-edit
ΠΡ Π·Π°ΠΏΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ commit-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ push. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠΌΡ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git push origin <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> -f
Git reset
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅Β git reset. Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΡΠΈ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ»Π°Π³Π° ΡΠ±ΡΠΎΡΠ°:
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° two.txt, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ commit id 96b037c.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset Ρ ΡΠ»Π°Π³ΠΎΠΌ —soft:
git reset --soft 96b037c
git reset —softΒ «ΠΏΠΎΡΠ΅ΡΡΠ΅Ρ» Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 96b037c), Π½ΠΎ ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
ΠΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git reflog. Git Π½Π°Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»ΠΈΡ «ΠΏΠΎΡΠ΅ΡΡΡΠΊΠΈ», ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ° (Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 30 Π΄Π½Π΅ΠΉ).
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅Β git statusΒ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅:
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ git log —oneline, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ:
ΠΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset Ρ ΡΠ»Π°Π³ΠΎΠΌ —mixed, ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΡΠ°Π½ΡΡ «ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌΠΈ», ΡΠ°ΠΉΠ»Ρ Π½Π΅ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π½ΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΉΡΠΈ Π² Π€Π‘. ΠΡΠ»ΠΈ Π²Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΠ»Π°Π³ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ reset, ΡΠ»Π°Π³ —mixed Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅Β git statusΒ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset Ρ ΡΠ»Π°Π³ΠΎΠΌ —hard.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ reset —soft, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ. ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ, Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ reset —hard.
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git reset <commit-id>Β ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Git revert
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Git ΠΊΠΎΠΌΠΌΠΈΡ:
git revert <commit-id> --no-commit
ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°ΡΡΠΎΠ½ΡΡΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git status. ΠΠ°ΡΠ΅ΠΌ git commit -m «commit-message».
Revert ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π½Π΅ ΠΊΠΎΠΌΠΌΠΈΡ, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ commit-id.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΠΎΡΠ»Π΅ revert-Π° ΡΡΠ°ΡΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ΅ΡΠ΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΡΠ°ΠΉΠ» six.txt Π½Π΅ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΡΠ΄Π°Π»Π΅Π½, Π° five.txt Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π’Π΅ΠΏΠ΅ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git revert <ΡΡΠ°ΡΡΠΉ commit-id>..<Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ commit-id> --no-commit
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ commit-id:
git revert <commit-id-1> <commit-id-2> --no-commit
Git cherry-pick
Π ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· ΡΡΠ±ΡΠΈΠΊΠΈ Git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ βΒ cherry-pick. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ) Π² Π²Π΅ΡΠΊΠ΅ «Π», ΡΠ°Π±ΠΎΡΠ°Ρ Π² Π²Π΅ΡΠΊΠ΅ «Π», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cherry-pick.
Π‘Π½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ commit-id, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠΊΡ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅:
git cherry-pick <commit-id>
GitΒ fetch
ΠΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π½ΡΠΆΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ (ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ) ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΈΡ
Π²Β local repository. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ git fetch
Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π²Π΅ΡΠΊΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΡΡΡ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ Ρ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ Π²Ρ Π½Π΅ ΡΠ»ΠΈΠ²Π°Π΅ΡΠ΅ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π΅ΡΠΊΡ.
Git merge
Π Π²ΠΎΡ git merge
ΠΊΠ°ΠΊ ΡΠ°Π· Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ Π½ΡΠΆΠ΅Π½.
Git pull
ΠΠ°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°Β β ΡΠΈΠΌΠ±ΠΈΠΎΠ· git fetch
ΠΈΒ git merge
. Π¨ΠΎΡΡΠΊΠΎΠ΄ Ρ
ΠΎΡΠΎΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΈΡ
ΡΠ±ΠΎΡΠ°.
Git push
ΠΡΠ»ΠΈ git pull
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΌΠ΅ΡΠΆΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ, ΡΠΎ git push
Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ: Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠ°ΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
git push origin master
Π§ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master
Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ origin
.
Π ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Ρ Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π»ΠΈ ΠΈΠ·ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ?
ΠΡΠΈΠ³ΠΈΠ½Π°Π»
10 ΠΏΠΎΠ»Π΅Π·Π½ΡΡ Git ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°Ρ ΡΠ°Π±ΠΎΡΡ
ΠΠ΅Π΄ΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΠΈΡΡ ΡΠΎΠΏΠΎΠΌ Git ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Π·Π°ΠΌΠ΅Π½ΠΈΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ.
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ git Π²ΠΎΠ·ΡΠΎΡΠ»Π°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ. ΠΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π°ΡΠΈΠ½Π°Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅Π½-ΡΠΎΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΈ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Ρ linux kernel. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΒ Git ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠΎΠΏΒ Git ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½ΠΎ ΠΏΡΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ Π΄Π²ΡΡ Π²Π΅ΡΠΎΠΊ, ΠΈΠ»ΠΈ Π³Π΄Π΅ Π±ΡΠ» ΡΠ΅ΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π±Π΅Π· ΡΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΠΉ Π² ΠΈΡΡΠΎΡΠΈΠΈ git.
$git log --no-merges commit e75fe8bf2c5c46dbd9e1bc20d2f8b2ede81f2d93 Author: John Date: Mon Jul 10 18:04:50 2017 +0300 Add new branch. commit 080dfd342ab0dbdf69858e3b01e18584d4eade34 Author: John Date: Mon Jul 11 15:40:56 2017 +0300 Added index.php. commit 2965803c0deeac1f2427ec2f5394493ed4211655 Author: John Date: Mon Jul 13 12:14:50 2017 +0300 Added css files.
Git revert ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΈΠ· Π²ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΈΠΌ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π½Π°Π·Π²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΈΡ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ , ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ββno-commit ΠΈΠ»ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ -n.
Git diff
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π½Π° Π΄ΠΈΡΠΊΠ΅. ΠΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΡΠ°ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° tab ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°. Π§ΡΠΎΠ±Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ -w.
ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ 3 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: width Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΈΡΠΈΠ½Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, name-width Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΡΠΈΠ½Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΠΈ count Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΡΡΠΎΠΊ.
$ git diff --stat index.php | 83 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 40 deletions(-)
$ git diff --stat-width=10 index.php | 83 +++--- 1 file changed, 43 insertions(+), 40 deletions(-)
Π‘Π±ΡΠΎΡΡΡΠ΅ head Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π½Π΅ ΠΊΠ°ΡΠ°ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°. ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΡΡΡΡ Π½Π° ΡΡΠ°ΠΏ βΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ°β. ΠΠ°Π»Π΅Π΅ Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ git commit, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ branch-name ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π΅Π΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊ Π½Π΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ stash ΠΈ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ. ΠΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ stash Π½Π΅ ΡΠΊΠ°Π·Π°Π½, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π»ΡΠ±ΡΠ΅ ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π° Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ.
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ ββmerged, ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ Π³Π»Π°Π²Π½ΠΎΠΉ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ Π²Π΅ΡΠΊΠΈ ΠΈ ΡΠ·Π½Π°Π²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ.
$ git branch -a dev * master remotes/origin/HEAD -> origin/master remotes/origin/dev
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ git commit ββamend Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²Π½Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠΊΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ΅.
Git pull ββrebase Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ git ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ββrebase ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΈΡΡΠΎΡΠΈΠΈ, ΠΈΠ·Π±Π΅Π³Π°Ρ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΉ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· Π½ΠΈΡ . Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π²ΡΠ±ΡΠ°ΡΡ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ.
diff --git a/package.json b/package.json index db78332..a814f7e 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ }, "devDependencies": { "bootstrap-sass": "^3.3.7", - "gulp": "^3.9.1", "jquery": "^3.1.0", "laravel-elixir": "^6.0.0-11", "laravel-elixir-vue-2": "^0.2.0", Stage this hunk [y,n,q,a,d,/,e,?]?
ΠΡΡΠΎΡΠ½ΠΈΠΊ
Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡΡ:
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ git reset —soft? — git
Π― ΡΠ°Π±ΠΎΡΠ°Ρ Ρ git ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΠ΅ΡΡΡΠ°. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» reset ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΡΠ°, Π½ΠΎ ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Ρ git commit --amend
.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΡΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ ( reset --soft
vs commit --amend
)? ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠ»Π°Π½Π΅? Π ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ reset --soft
, ΠΊΡΠΎΠΌΠ΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΌΠΈΡ?
git
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
AJJ Β Β
05 ΠΌΠ°ΡΡΠ° 2011 Π² 11:31
11 ΠΡΠ²Π΅ΡΠΎΠ²
96
git reset
-ΡΡΠΎ Π²ΡΠ΅ ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ HEAD
, ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π²Π΅ΡΠ²Ρ ref .
ΠΠΎΠΏΡΠΎΡ: Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°?
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ --soft
, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ HEAD
, ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ Π²Π΅ΡΠ²Ρ ref, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ HEAD
.
ΠΡΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ commit --amend
ΠΊΠ°ΠΊ:
- ΡΡΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½ΠΎΠ²ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
- ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ HEAD Π² Π»ΡΠ±ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ (ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ
commit --amend
— ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ HEAD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ)
ΠΡΠΎΡΡΠΎ Π½Π°ΡΠ΅Π» ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ:
- ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ»ΠΈΡΠ½ΠΈΠ΅
- ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²
Π²ΡΠ΅ Π² ΠΎΠ΄ΠΈΠ½ (ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π²ΡΡ Π²Π΅ΡΠ²Π΅ΠΉ ΡΠ»ΠΈΠ»ΠΎΡΡ) ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΡΠ»ΠΈΡΠ½ΠΈΠ΅.
Π’ΠΎΠΌΠ°Ρ «wereHamster» ΠΠ°ΡΠ½Π΅ΠΊΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ «Subtree Octopus merge» :
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π°, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. ΠΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»ΡΠΌ git.
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ octopus ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ΅Ρ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠ²Π΅ΠΉ. ΠΠ±ΡΡΠ½Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠΎ git Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΊ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³Π°.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ. ΠΠΎ Ρ Ρ ΠΎΡΠ΅Π» ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΈ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Π΅ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΠΏΠ΅ΡΠΏΡΠΎΠ΅ΠΊΡ , Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π΅Π³ΠΎ
projectA
, ΠΈ ΠΏΠΎΠ΄ΠΏΡΠΎΠ΅ΠΊΡprojectB
, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ»ΠΈΠ» Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³projectA
.
(ΡΡΠΎ ΡΠ°ΡΡΡ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²)
Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ProjectA
ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ,projectB
ΠΈΠΌΠ΅Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΠΏΠ°ΡΡ Π΄Π½Π΅ΠΉ ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»Ρ ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈprojectA
.ΠΠΎΠ³Π΄Π° Ρ ΡΠ΅ΡΠ°Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΎΠ±Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°ΡΠΊΠΈΠ²Π°Ρ ΠΈΠ·
projectA
ΠΈprojectB
, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° .
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Ρ ΡΠΎΠ·Π΄Π°Ρ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ , ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅ΡprojectA
,projectB
ΠΈ ΠΌΠΎΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ .
Π₯ΠΈΡΡΠ°Ρ ΡΠ°ΡΡΡ Π·Π΄Π΅ΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ ΠΎΡΡΠΌΠΈΠ½ΠΎΠ³Π° (ΡΡΠΈ Π³ΠΎΠ»ΠΎΠ²Ρ), Π½ΠΎprojectB
Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΡΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° . Π’Π°ΠΊ Π²ΠΎΡ ΡΠ΅ΠΌ Ρ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ:
# Merge projectA with the default strategy:
git merge projectA/master
# Merge projectB with the subtree strategy:
git merge -s subtree projectB/master
ΠΠ΄Π΅ΡΡ Π°Π²ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» reset --hard
, Π° Π·Π°ΡΠ΅ΠΌ read-tree
, ΡΡΠΎΠ±Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΡΠ»ΠΈΡΠ½ΠΈΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ, Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ reset --soft
:
ΠΠ°ΠΊ ΠΌΠ½Π΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠΈ Π΄Π²Π° ΡΠ»ΠΈΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΈ, Ρ. Π΅. ΠΌΠΎΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, Π½ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΡΠΈ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ°?
# Move the HEAD, and just the HEAD, two commits back!
git reset --soft HEAD@{2}
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π’ΠΎΠΌΠ°ΡΠ°:
# Pretend that we just did an octopus merge with three heads:
echo $(git rev-parse projectA/master) > .git/MERGE_HEAD
echo $(git rev-parse projectB/master) >> .git/MERGE_HEAD
# And finally do the commit:
git commit
Π’Π°ΠΊ ΡΡΠΎ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·:
- Π²Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ (Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°)
- Π²Ρ Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΈΡΡ Π²Π°ΠΌ, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΡΠ΄Π°:
git reset --soft
— Π²ΠΎΡ ΠΎΡΠ²Π΅Ρ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
VonC Β Β
05 ΠΌΠ°ΡΡΠ° 2011 Π² 12:36
32
ΠΠ°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ-ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
«Oops. Those three commits could be just one.»
ΠΡΠ°ΠΊ, ΠΎΡΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 3 (ΠΈΠ»ΠΈ ΡΡΠΎ-ΡΠΎ Π΅ΡΠ΅) ΠΊΠΎΠΌΠΌΠΈΡΠ° (Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Ρ Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ, Π½ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³). ΠΠ°ΡΠ΅ΠΌ Π·Π°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅.
E.g.
> git add -A; git commit -m "Start here."
> git add -A; git commit -m "One"
> git add -A; git commit -m "Two"
> git add -A' git commit -m "Three"
> git log --oneline --graph -4 --decorate
> * da883dc (HEAD, master) Three
> * 92d3eb7 Two
> * c6e82d3 One
> * e1e8042 Start here.
> git reset --soft HEAD~3
> git log --oneline --graph -1 --decorate
> * e1e8042 Start here.
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ ΠΈ Π³ΠΎΡΠΎΠ²Ρ Π±ΡΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΡΠ΅Π»ΠΎΠ΅.
ΠΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π²Π°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π»ΠΈ ΡΡΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ ( reset --soft
vs commit --amend
)?
ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠ»Π°Π½Π΅?
commit --amend
Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²/rm Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.reset --soft <commit>
Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ²ΡΠΉ.
Π ΡΡΠΎ Π΅ΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ reset --soft
, ΠΊΡΠΎΠΌΠ΅ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΌΠΈΡ?
- Π‘ΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ π
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Shaun Luttin Β Β
03 ΠΎΠΊΡΡΠ±ΡΡ 2014 Π² 01:22
16
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π΄ΠΎΠΏΡΡΡΠΈΠ» ΠΎΡΠΈΠ±ΠΊΡ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ A, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ²Π΅ΡΡΠΈΠ» ΠΊΠΎΠΌΠΌΠΈΡ B. ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΌΠΎΠ³Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ B.
Π’Π°ΠΊ ΡΡΠΎ Ρ git reset --soft HEAD^^
, Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΡ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²… Π½ΠΎ Π²Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄Π΅Π»Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² π
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Simon Β Β
06 ΠΌΠ°ΡΡΠ° 2011 Π² 02:29
9
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ-ΡΡΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠ°ΠΉΠ½ΠΈΠΊΡ (ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ Π»ΡΠ΄ΡΠΌ Π½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ, ΡΠΌ., Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, https://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/ ).
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Π²Π΅ΡΠΊΠ΅ ΠΈ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎΡΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° master, Ρ ΠΌΠΎΠ³Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ:
git commit -am "In progress."
Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΠ°ΡΡΠ΅Ρ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅. ΠΠΎΠ³Π΄Π° Ρ Π·Π°ΠΊΠΎΠ½ΡΡ, Ρ Π²Π΅ΡΠ½ΡΡΡ Π² ΡΠ²ΠΎΡ Π²Π΅ΡΠ²Ρ ΠΈ ΡΠ΄Π΅Π»Π°Ρ ΡΡΠΎ.
git reset --soft HEAD~1
ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΡΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
deltacrux Β Β
24 ΡΠ΅Π½ΡΡΠ±ΡΡ 2015 Π² 06:25
6
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git reset --soft
Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ
Π² Π²Π°Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ. Π‘Π»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΡΠ΅Π΄ΠΊΠΈ. ΠΠ½ΠΎΠ³Π΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π² Π²Π°ΡΠ΅ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ. ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ²Π΅ΡΠ½ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ (ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ squash/fold).
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠΎΡ ΠΎΡΠ²Π΅Ρ Π½Π° VonC Π΄Π»Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
Π‘ΠΊΠ²ΠΎΡ ΠΏΠ΅ΡΠ²ΡΡ
Π΄Π²ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git?
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Johannes Rudolph Β Β
05 ΠΌΠ°ΡΡΠ° 2011 Π² 11:40
6
ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ-ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΌ Π½Π° ΡΠ°ΠΉΠ½ΠΈΠΊ,
git checkout -b <branchname>_stash
Π’ΠΎΠ»ΠΊΠ½ΠΈ ΡΠ²ΠΎΡ Π·Π°Π½Π°ΡΠΊΡ Π²Π΅ΡΠΊΠΎΠΉ Π²Π²Π΅ΡΡ ,
git push -u origin <branchname>_stash
ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ Π½Π° Π΄ΡΡΠ³ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠΎΡΡΠ½ΠΈΡΠ΅ Π²Π½ΠΈΠ· ΠΊΠ°ΠΊ Π²Π°Ρ ΡΠ°ΠΉΠ½ΠΈΠΊ, ΡΠ°ΠΊ ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π΅ΡΠ²ΠΈ,
git checkout <branchname>_stash; git checkout <branchname>
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅. Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅ΡΠΊΠΈ ΡΠ°ΠΉΠ½ΠΈΠΊΠ°,
git merge <branchname>_stash
ΠΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ Π΄ΠΎ 1 ΠΏΠ΅ΡΠ΅Π΄ ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ,
git reset --soft HEAD^
Π£Π±Π΅ΡΠΈΡΠ΅ ΡΠ²ΠΎΡ Π·Π°Π½Π°ΡΠΊΡ Π²Π΅ΡΠΊΡ,
git branch -d <branchname>_stash
Π’Π°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ²ΠΎΠΉ Π·Π°Π½Π°ΡΠΊΡ ΡΠΈΠ»ΠΈΠ°Π» ΠΎΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ,
git push origin :<branchname>_stash
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΡΡΠ°Π»ΠΈ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ GitHub ΠΈ ΠΊΠΎ. ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ «remote stash» Π² ΠΌΠ΅Π½ΡΡΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π³ΠΎΠ².
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
llaughlin Β Β
01 ΠΈΡΠ»Ρ 2014 Π² 17:46
5
ΠΠΎΠ»ΡΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ‘ 27 ‘ — ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ HEAD
Π² Π³ΠΎΠ»ΠΎΠ΅ Π ΠΠΠ.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ --mixed
ΠΈΠ»ΠΈ --hard
, Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈ/ΠΈΠ»ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ· Π³ΠΎΠ»ΠΎΠ³ΠΎ Π ΠΠΠ.
ΠΡΠ΅ ΡΠ°Π· ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²Π΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ Π² Π³ΠΎΠ»ΠΎΠΌ Π ΠΠΠ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π²Π΅ΡΠ²ΡΡ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΎΡΠ²Π΅ΡΡ VonC ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΠ²Ρ Π² Π³ΠΎΠ»ΠΎΠΌ Π ΠΠΠ, ΠΊΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π ΠΠΠ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Hazok Β Β
17 ΠΌΠ°Ρ 2011 Π² 18:24
5
ΠΠ΄Π½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΡΠΆΠ΅ Π²Π·ΡΠ»ΠΈ Π½Π° ΡΠ΅Π±Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ Π ΠΠΠ (Ρ. Π΅. git commit-m) Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² git reset —soft HEAD ~1
Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ Π·Π½Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ (Ρ. Π΅. Ρ git add .) Π·Π°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΡΠ΄Π΅Π»Π°Π² git reset —mixed HEAD ΠΈΠ»ΠΈ Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» git reset
Π½Π°ΠΊΠΎΠ½Π΅Ρ, git reset —hard ΡΡΠΈΡΠ°Π΅Ρ Π²ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π°ΡΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠΎΠ»ΠΎΠ²Π° ~ after Π³ΠΎΠ²ΠΎΡΠΈΡ Π²Π°ΠΌ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²Π΅ΡΡ Ρ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
j2emanue Β Β
21 ΡΠ΅Π²ΡΠ°Π»Ρ 2016 Π² 16:39
1
SourceTree — ΡΡΠΎ git GUI, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ Π±ΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅. ΠΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΎΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅Π³ΠΎ Π΄Π»Ρ Π²Π½Π΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΡΠ°Π²ΠΎΠΊ Π² Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ.
Π’Π°ΠΊ ΡΡΠΎ git reset --soft HEAD~1
Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅, ΡΠ΅ΠΌ commit --amend
Π² ΡΡΠΎΠΌ ΡΡΠ΅Π½Π°ΡΠΈΠΈ. Π― ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ
Π±ΠΈΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ SourceTree.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ commit --amend
-ΡΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π±ΡΡΠΎΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ· Π΄Π²ΡΡ
, Π½ΠΎ git — ΡΡΠΎ git ΠΈ Π½Π΅ ΡΠΊΠ»ΠΎΠ½ΡΠ΅ΡΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΠΈ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Roman Starkov Β Β
15 ΠΈΡΠ»Ρ 2014 Π² 00:33
0
Π₯ΠΎΡΡ ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΡΡΡΡ ΠΎΡΠ²Π΅ΡΡ Π² ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git reset --soft
Π΄Π»Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, Π½ΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅.
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ IDE Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ diff Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΡ ΠΈ Π½Π΅ΡΡΠ°Π³Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ) ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΌΠΎΠΈΡ Π·Π°Π΄Π°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, Ρ Π΄Π΅Π»Π°Ρ 5 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ diff Π² IDE Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈΠ· 1-5, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. Π― ΡΡΠΈΡΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ.
ΠΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΌΠΎΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠ³Π΄Π° Ρ Ρ ΠΎΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ (Π΄ΠΎ 1-Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°), ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠ° Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅, Ρ Π±ΡΠ΄Ρ Π²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠΎΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠ° 4), Π° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ· Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΌΠΎΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git reset --soft HEAD~4
, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ 4 ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ½Π΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠΎΠ³Π΄Π° Ρ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠ²ΠΎΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
,Ρ ΠΌΠΎΠ³Ρ ΡΠΎΠ³Π΄Π° ΡΠ΄Π΅Π»Π°ΡΡ git reset HEAD@{1}
ΠΈ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎ Π½Π°ΠΆΠ°ΡΡ Π΅Π³ΠΎ Π½Π° ΠΏΡΠ»ΡΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Swanky Coder Β Β
04 ΠΈΡΠ»Ρ 2018 Π² 01:52
0
ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ — ΠΊΠΎΠ³Π΄Π° Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠ²Ρ Π½Π° ΡΠ²ΠΎΡ Π² Π·Π°ΠΏΡΠΎΡΠ΅ pull, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ A, B, C Π² Development.
ΠΡ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΠΈ Π²Ρ:
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ B.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Development Π² next, Π½ΠΎ ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ, Π½ΠΎ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git reset --soft origin/develop
ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π²Π°ΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΈ Π²Π΅ΡΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ git reset --soft
-ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π― Π»ΠΈΡΠ½ΠΎ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ°Π·Π΄Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ «completed work», ΠΊΠ°ΠΊ «WIP», ΠΏΠΎΡΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΡΠΊΡΡΠ²Π°Ρ Π·Π°ΠΏΡΠΎΡ pull, Π²ΡΠ΅ ΠΌΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΠ½ΡΡΠ½Ρ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
cnexans Β Β
23 ΡΠ½Π²Π°ΡΡ 2019 Π² 12:54
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΠΠ½Π²Π΅ΡΡΠΈΡ git reset —soft
git reset —soft ΡΠΎΡ ΡΠ°Π½ΠΈΡ Π²Π°ΡΠΈ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ,Π½ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ HEAD Π² Π΄ΡΡΠ³ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. Π― ΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΡΡΠΎΠ±Ρ HEAD ΠΎΡΡΠ°Π²Π°Π»ΡΡ Π½Π΅ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΡΠΌ, Π½ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ»ΠΎ Π±Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π²…
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ git reset —soft?
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ git reset —soft? Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git ΡΠ±ΡΠΎΡ —ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ»ΡΡΠ°ΠΉ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ±ΡΠΎΡ git —ΠΌΡΠ³ΠΊΠΈΠΉ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ git reset —soft ΠΈ git reset
Π ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ git reset —soft origin/dev ΠΈ git reset origin/dev ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊΠ°Ρ ΡΠΆ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΈΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΌΠΎΠ³ ΠΏΡΠΎΡΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΡΠΎ-ΡΠΎ ΠΈΡΠΏΠΎΡΡΠΈΡΡ.
ΠΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π»ΠΈ git reset —soft ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ hash?
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ Π°Π²ΡΠΎΡ Ρ ΠΎΡΠΎΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ 3 Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ±ΡΠΎΡΠ° git (ΠΌΡΠ³ΠΊΠΈΠΉ, ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ, ΠΆΠ΅ΡΡΠΊΠΈΠΉ): https://www.atlassian.com/git/tutorials/undoing-changes/git-reset ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ three trees Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅…
Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ’ git reset —soft ‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ no-op?
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠΈΠΈ —soft …ΠΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π½ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° Π²ΠΎΠΎΠ±ΡΠ΅, Π½ΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π² Ρ ΠΎΡΠΎΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ Π²Π°ΡΠΈ…
ΠΠ°ΡΠ΅ΠΌ ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ git reset —soft ΠΏΠ΅ΡΠ΅Π΄ git reset (—mixed)
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°Ρ git (ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠΎΡΠΎΠΊΠ°Ρ SO) ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ±ΡΠΎΡΠ°: $ git reset —soft HEAD^ ;# go back to WIP state <2> $ git reset <3> . 2. ΠΡΠΎ ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ WIP ΠΈΠ·…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ git reset —soft, ΡΡΠΎΠ±Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ?
Π£ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ git commit. ΠΠΎΠ·ΠΆΠ΅ Ρ ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΌΠ°Π»ΠΈ ΠΌΠΎΡ ΡΠ±ΠΎΡΠΊΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΄Π΅Π»Π°Π» git reset…
git rebase <tag> / git reset —soft <tag> Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
Π― ΠΎΠΆΠΈΠ΄Π°Π», ΡΡΠΎ git reset —soft ΠΈΠ»ΠΈ git rebase ΡΠ°Π·Π΄Π°Π²ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½, Π½ΠΎ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΡΠΎΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ bash. ΠΠ½ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π²Π΅ΡΠ²ΠΈ ΠΈΠ·…
ΠΠ°ΠΊ Π±ΡΡΡΡΠΎ «exit» git soft reset?
ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» Π²Π΅ΡΠ½ΡΡΡΡΡ Π½Π° ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π°Π·Π°Π΄, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ Ρ Π΄Π΅Π»Π°Ρ ΡΡΠΎ: git reset —soft {commit_hash} ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± Π±ΡΡΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ,…
ΠΠ°ΠΊ `git pull —rebase ‘ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ’ git reset —soft origin/b`
Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ git pull —rebase …ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΊΠ°ΠΊ ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ: git fetch origin git reset —soft remotes/origin/foo git add . git commit -am bar git merge remotes/origin/foo…
Π΄Π»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Β«git resetΒ»?
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
.
Git Reset | Π£ΡΠ΅Π±Π½ΠΈΠΊ Atlassian Git
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
— ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΡΠΎΡΠΌΡ ΠΏΡΠΈΠ·ΡΠ²Π°Π½ΠΈΡ. ΠΡΠΈ ΡΠΎΡΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --soft, --mixed, --hard
. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΡΡΠ΅Ρ
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Git: Π΄Π΅ΡΠ΅Π²Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ( HEAD
), ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ.
Git Reset ΠΈ ΡΡΠΈ Π΄Π΅ΡΠ΅Π²Π° Git
Π§ΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git reset
, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ½ΡΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Git.ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«ΡΡΠ΅ΠΌΡ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈΒ» Git. ΠΠ΅ΡΠ΅Π²ΡΡ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌΠΈ Π΄ΡΠ΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ·Π»ΠΎΠ² ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Git ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠ°Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΡ — ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° Π½ΠΈΠΌ ΠΏΠΎ ΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡΠΌ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:
$ mkdir git_reset_test $ cd git_reset_test / $ git init.ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΡΡΠΎΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Git Π² /git_reset_test/.git/ $ touch reset_lifecycle_file $ git add reset_lifecycle_file $ git commit -m "initial commit" [master (root-commit) d386d86] Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ 1 ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 0 Π²ΡΡΠ°Π²ΠΎΠΊ (+), 0 ΡΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-) ΡΠ΅ΠΆΠΈΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ 100644 reset_lifecycle_file
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ git Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΡΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ reset_lifecycle_file
. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ( d386d86
) ΠΎΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ reset_lifecycle_file
.
Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³
ΠΠ΅ΡΠ²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΡΡΠΎ Β«Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Β». ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½ΠΎΡΠΈΠΌΡΠ΅ Π² ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
$ echo 'hello git reset'> reset_lifecycle_file
$ git status
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ:
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git add ...Β», ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ)
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git checkout - ... ", ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅)
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file
Π Π½Π°ΡΠ΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΌΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΡΠ°ΠΉΠ» reset_lifecycle_file
. ΠΡΠ·ΠΎΠ² git status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Git Π·Π½Π°Π΅Ρ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
Π² ΡΠ°ΠΉΠ»Π΅. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° Β«Π Π°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Β». Git status
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠΌ Β«ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΉΒ».
ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git add
, Π΄Π»Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅. ΠΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Git ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΠΊΡΡΡΡ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΎΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ»Ρ ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git git ls-files
. ΠΠΎΠΌΠ°Π½Π΄Π° git ls-files
ΠΏΠΎ ΡΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠΈΠ»ΠΈΡΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
git ls-files -s 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ git ls-files
Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -s
ΠΈΠ»ΠΈ --stage. ΠΠ΅Π· ΠΎΠΏΡΠΈΠΈ
-s
Π²ΡΠ²ΠΎΠ΄ git ls-files
ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅Π½ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ -s
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. ΠΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π±ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ, ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΠ°ΠΏΠ°.ΠΠ΄Π΅ΡΡ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π²ΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ( d7d77c1b04b5edd5acfc85de0b592449e5303770
). ΠΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ Ρ
ΡΡ SHA-1 ΠΎΠ±ΡΠ΅ΠΊΡΠ° Git. ΠΡΠΎ Ρ
Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Ρ
ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ SHA Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΡΡΡΠ»ΠΊΠΈ, Π° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠ΅ SHA Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ reset_lifecycle_file
Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ.
$ git add reset_lifecycle_file
$ git status
ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ:
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git reset HEAD... "ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ΅Π½Ρ)
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠ·Π²Π°Π»ΠΈ git add reset_lifecycle_file
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΉΠ» Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ git status
ΡΠ΅ΠΏΠ΅ΡΡ reset_lifecycle_file
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΒ». ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ git status
Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΈΠ½Π½ΡΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°. ΠΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ.ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°.
$ GIT LS-ΡΠ°ΠΉΠ»ΠΎΠ² -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ Π¨Π Π΄Π»Ρ reset_lifecycle_file
Π±ΡΠ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Ρ e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
Π΄ΠΎ d7d77c1b04b5edd5acfc85de0b592449e5303770
.
ΠΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ - ΡΡΠΎ ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠΎΠΌΠ°Π½Π΄Π° git commit
Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.ΠΡΠΎΡ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
$ git commit -am "ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ reset_lifecycle_file" [master dc67808] ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° reset_lifecycle_file 1 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 Π²ΡΡΠ°Π²ΠΊΠ° (+) $ git status ΠΠ° ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡΠΈΡΠ΅Π½ΠΎ
ΠΠ΄Π΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π» Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Β«ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° resetlifecyclefileΒ»
. ΠΠ°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±ΡΠ» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΡΠ·ΠΎΠ² git status
Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½Π΅Ρ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π΄Π΅ΡΠ΅Π²ΡΠ΅Π².ΠΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ git log
ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΠ»ΠΈ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git reset
.
ΠΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ΠΠ° ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ git reset
ΠΏΠΎΡ
ΠΎΠΆΠ΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ git checkout
. ΠΡΠ»ΠΈ git checkout
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ HEAD
ref, git reset
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD
ref ΠΈ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π²Π΅ΡΠΊΠΈ.Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π° Π²Π΅ΡΠ²ΠΈ master
. HEAD
ref ΠΈ master
branch ref Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ d. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΈ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΊΠ°ΠΊ git checkout b
, ΡΠ°ΠΊ ΠΈ git reset b.
git checkout b
Π‘ git checkout
, master
ref Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° d
. HEAD
ref Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ b
.Π Π΅ΠΏΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Β« HEAD
Β».
git ΡΠ±ΡΠΎΡΠΈΡΡ b
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ: git reset
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ HEAD
, ΡΠ°ΠΊ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π²Π΅ΡΠΊΠΈ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ, git reset
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π². ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ref Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Π΄Π΅ΡΠ΅Π²Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ --soft, --mixed
ΠΈ --hard
ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ·ΠΎΠ² git reset
ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΡΠ²Π½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ - ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠ΅
ΠΈ HEAD
. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ git reset
ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ git reset --mixed HEAD
. Π ΡΡΠΎΠΉ ΡΠΎΡΠΌΠ΅ HEAD
- ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠΌΠ΅ΡΡΠΎ HEAD
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Ρ
ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Git SHA-1.
- ΡΠ²Π΅ΡΠ΄ΡΠΉ
ΠΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΡΠΌΠΎΠΉ, ΠΠΠΠ‘ΠΠ«Π ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ.ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ --hard
Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΡΡΡΠ»ΠΊΠΈ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π΄ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. ΠΡΠ±ΡΠ΅ ΡΠ°Π½Π΅Π΅ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π΅ΡΠ΅Π²Π° ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π»ΡΠ±Π°Ρ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½Π°Ρ ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΈΡΠ΅Π»Π° Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π°.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΠΏΠΎ ΠΈΠ· ΡΡΠ΅Ρ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ°Π½Π΅Π΅.Π‘Π½Π°ΡΠ°Π»Π° Π²Π½Π΅ΡΠ΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎ. ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
$ echo 'Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°'> new_file $ git add new_file $ echo 'ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅' >> reset_lifecycle_file
ΠΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ new_file
ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ reset_lifecycle_file
Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. Π‘ ΡΡΠΈΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ git status
.
$ git status Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git reset HEAD ...Β» Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ) Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»: new_file ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git add ...Β», ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΎ) (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git checkout - ...", ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎ Π΅ΡΡΡ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ new_file
, Π° Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π΅ΡΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ reset_lifecycle_file
.
ΠΠ΅ΡΠ΅Π΄ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ:
$ git ls-files -s 100644 8e66654a5477b1bf4765946147c49509a431f963 0 new_file 100644 d7d77c1b04b5edd5acfile2000 . ΠΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ reset_lifecycle_file
, Π½ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ SHA ( d7d77c1b04b5edd5acfc85de0b592449e5303770
) ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ.ΠΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΎΡΡ git add
Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ. ΠΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ git reset --hard
ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
$ git reset --hard HEAD ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π½Π° dc67808 ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ reset_lifecycle_file $ git status ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ $ git ls-files -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file 9000
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° --hard
.Git ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠ²ΠΎΠ΄, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ, ΡΡΠΎ HEAD
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ dc67808
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git status
. Git ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΈ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΠ½ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ Π΄ΠΎ ΡΠΎΡΠΊΠΈ Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ new_file
. ΠΠ°ΡΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ reset_lifecycle_file
ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ new_file
Π±ΡΠ»ΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Ρ. ΠΡΡ ΠΏΠΎΡΠ΅ΡΡ Π΄Π°Π½Π½ΡΡ
Π½Π΅Π»ΡΠ·Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈΠ½ΡΡΡ ΠΊ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ.
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ
ΠΡΠΎ ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ref ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ. ΠΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΡΠ±ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Ρ ΠΈΠ· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ.
$ echo 'Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°'> new_file $ git add new_file $ echo 'append content' >> reset_lifecycle_file $ git add reset_lifecycle_file $ git status ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git reset HEAD... "Π΄Π»Ρ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ) Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»: Π½ΠΎΠ²ΡΠΉ_ΡΠ°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½: reset_lifecycle_file $ git ls-files -s 100644 8e66654a5477b1bf4765946147c49509a431f963 0 Π½ΠΎΠ²ΡΠΉ_ΡΠ°ΠΉΠ» 100644 7ab362db063f9e94262c00a3394b4be
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²Π½Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. Π‘Π½ΠΎΠ²Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ new_file
ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ reset_lifecycle_file
. ΠΠ°ΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git add
. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ±ΡΠΎΡ.
$ git reset --mixed $ git status Π ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git add ...Β», ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ) (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Β«git checkout - ...Β», ΡΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file ΠΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add ...", ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ) new_file ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΡΠΈΠΊΡΠ°ΡΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a") $ git ls-files -s 100644 d7d77c1b04b5edd5acfc85de0b592449e5303770 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ ΡΠ±ΡΠΎΡΒ».ΠΠΎΠ²ΡΠΎΡΡΡΡ, --mixed
- ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΡΡΠΎ ΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ git reset
. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
git status
ΠΈ git ls-files
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ reset_lifecycle_file
ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅. ΠΠ±ΡΠ΅ΠΊΡ SHA Π΄Π»Ρ reset_lifecycle_file
Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½ Π΄ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΠ΄Π΅ΡΡ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ git status
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ, ΡΡΠΎ Π΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² reset_lifecycle_file
ΠΈ Π΅ΡΡΡ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»: new_file
.ΠΡΠΎ ΡΠ²Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ - ΡΠΌΠ΅ΡΠ°Π½Π½ΠΎΠ΅
. ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½, Π° ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. Π‘ΡΠ°Π²Π½ΠΈΡΠ΅ ΡΡΠΎ ΡΠΎ ΡΠ»ΡΡΠ°Π΅ΠΌ ΡΠ±ΡΠΎΡΠ° --hard
, ΠΊΠΎΠ³Π΄Π° ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½, Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ» ΡΠ±ΡΠΎΡΠ΅Π½, ΠΈ ΡΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±ΡΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ.
- ΠΌΡΠ³ΠΊΠΈΠΉ
ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ --soft
, ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ref ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΠΈ Π½Π° ΡΡΠΎΠΌ ΡΠ±ΡΠΎΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ.Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΡΡΠ΄Π½ΠΎ ΡΠ΅ΡΠΊΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π½Π°ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΠΏΠΎ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ Π΅Π³ΠΎ ΠΊ ΠΌΡΠ³ΠΊΠΎΠΌΡ ΡΠ±ΡΠΎΡΡ.
$ git add reset_lifecycle_file
$ git ls-files -s
100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_file
$ git status
"Π‘Π±ΡΠΎΡΠΈΡΡ
Π½Π°
Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ
. unstage)
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file
Π€Π°ΠΉΠ»Ρ Π±Π΅Π· ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ:
(ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git add... "Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΠΎ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΎ)
new_file
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠ½ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ git add
Π΄Π»Ρ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ reset_lifecycle_file
Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΠΌ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ Π±ΡΠ» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Ρ Π²ΡΡ
ΠΎΠ΄Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ git ls-files
. Π Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
git status
ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π·Π΅Π»Π΅Π½ΡΠΉ ΡΠ²Π΅Ρ Β«ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΒ». new_file
ΠΈΠ· Π½Π°ΡΠΈΡ
ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΊΠ°ΠΊ Π½Π΅ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ».ΠΠ°Π²Π°ΠΉΡΠ΅ Π±ΡΡΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ rm new_file
, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΡΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ±ΡΠΎΡ.
$ git reset --soft $ git status ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ "git reset HEAD ..." Π΄Π»Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file $ git ls-files -s 100644 67cc52710639e5da6b515416fd779d0741e37cycle_23e reset_life60006
ΠΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Β«ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ».ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git status
ΠΈ git ls-files
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΡΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ git reset
Ρ HEAD
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΡΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π½Π° HEAD
, ΠΈ ΠΌΡ Π½Π΅ΡΠ²Π½ΠΎ ΡΠ±ΡΠΎΡΠΈΠ»ΠΈ Π΄ΠΎ HEAD
, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ.
Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ --soft
, Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΡ HEAD
.Π£ Π½Π°Ρ Π΅ΡΡΡ reset_lifecycle_file
, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ
Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
$ git commit -m "Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² reset_lifecycle_file"
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ID ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ, ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π² Π²ΡΠ²ΠΎΠ΄ git log
.
$ git log commit 62e793f6941c7e0d4ad9a1345a175fe8f45cb9df ΠΠ²ΡΠΎΡ: bitbucket ΠΠ°ΡΠ°: 1 Π΄Π΅ΠΊΠ°Π±ΡΡ, ΠΏΡΡΠ½ΠΈΡΠ°, 15:03:07 2017 -0800 Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π² ΡΠ°ΠΉΠ» reset_lifecycle_file commit dc67808a6da9f0dec51ed16d3dda_file_file_commit 780411da3b47117270c0e3a8d5dcfd11d28d04a4 ΠΠ²ΡΠΎΡ: bitbucket ΠΠ°ΡΠ°: Π§Ρ, 30 Π½ΠΎΡΠ±ΡΡ, 16:50:39 2017 -0800 Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, - 780411da3b47117270c0e3a8d5dcfd11d28d04a4
. ΠΡΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Β«Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈΒ». ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΡΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π»ΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ°.
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎ.
$ git status && git ls-files -s ΠΠ° ΠΌΠ°ΡΡΠ΅ΡΠ΅ Π²Π΅ΡΠΊΠΈ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΡΠΈΡΠ΅Π½ΠΎ 100644 67cc52710639e5da6b515416fd779d0741e3762e 0 reset_lifecycle_file
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ² git status ΠΈ . ΡΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°ΠΌ, ΡΡΠΎ Π² ΡΠ΅ΠΏΠΎ Π΅ΡΡΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° reset_lifecycle_file
Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²Π΅ΡΡΠΈΡ 67cc52710639e5da6b515416fd779d0741e3762e
.ΠΠΌΠ΅Ρ ΡΡΠΎ Π² Π²ΠΈΠ΄Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡ Π΄ΠΎ Π½Π°ΡΠ΅ΠΉ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
$ git reset --soft 780411da3b47117270c0e3a8d5dcfd11d28d04a4 $ git status && git ls-files -s Π Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠ·Π»Π΅ Π²Π΅ΡΠΊΠΈ ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ: (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«git reset HEAD ...Β» Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: reset_lifecycle_file 9646396e3e3e07e08e06e6e6e6e6e7e07e6e07e6e6e6e07ec5e /
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Β«ΠΌΡΠ³ΠΊΠΈΠΉ ΡΠ±ΡΠΎΡΒ», Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git status
ΠΈ git ls-files
, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎ ΠΈ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, git status
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² reset_lifecycle_file
ΠΈ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΈΡ
, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠΎ-Π²ΡΠΎΡΡΡ
, Π²Π²ΠΎΠ΄ git ls-files
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΠ» ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ SHA 67cc52710639e5da6b515416fd779d0741e3762e.
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ±ΡΠΎΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΠΆΡΡΠ½Π°Π» git :
$ git log commit 780411da3b47117270c0e3a8d5dcfd11d28d04a4 ΠΠ²ΡΠΎΡ: bitbucket ΠΠ°ΡΠ°: Π§Ρ, 30 Π½ΠΎΡΠ±ΡΡ, 16:50:39,
, Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ
log ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΉ Π΅ΡΡΡ ΠΎΠ΄Π½Π° ΡΠΈΠΊΡΠ°ΡΠΈΡ.ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π» - soft
. ΠΠ°ΠΊ ΠΈ Π²ΠΎ Π²ΡΠ΅Ρ
Π²ΡΠ·ΠΎΠ²Π°Ρ
git reset
, ΠΏΠ΅ΡΠ²ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ±ΡΠΎΡ, - ΡΡΠΎ ΡΠ±ΡΠΎΡΠΈΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ --hard
ΠΈ --mixed
Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ² HEAD
ΠΈ Π½Π΅ Π²Π΅ΡΠ½ΡΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π½Π°Π·Π°Π΄ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠΎ Π²ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΡΠ³ΠΊΠΎΠ³ΠΎ ΡΠ±ΡΠΎΡΠ°. Π’ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΠΈΠ²Π°ΡΡ Ρ ΡΠΎΠ»ΠΊΡ, ΠΏΠΎΡΠ΅ΠΌΡ git status
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ². --soft
Π½Π΅ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ Π·Π° Π½Π°ΠΌΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΠ΅Π· ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ git ls-files -s
, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌ, ΡΡΠΎ SHA Π΄Π»Ρ reset_lifecycle_file
Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ. ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, ΡΡΠΎ git status
Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Β«ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π²Β», ΠΎΠ½ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΈΡ
ΡΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠ»ΠΈ.
Π‘Π±ΡΠΎΡ ΠΏΡΠΎΡΠΈΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ°
ΠΡΠ»ΠΈ git revert
ΡΠ²Π»ΡΠ΅ΡΡΡ Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌΒ» ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ git reset
ΠΊΠ°ΠΊ ΠΎΠΏΠ°ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄. ΠΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ git reset
. Git reset
Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΄Π°Π»ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ Β«ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΠΌΠΈΒ», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΠΎΡ ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½ΠΈΠΌ. ΠΡΠΈ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git reflog
. Git Π½Π°Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°.ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Git Π½Π°ΡΡΡΠΎΠ΅Π½ Π½Π° Π·Π°ΠΏΡΡΠΊ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΊΠ°ΠΆΠ΄ΡΠ΅ 30 Π΄Π½Π΅ΠΉ. ΠΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ - ΠΎΠ΄Π½ΠΎ ΠΈΠ· Β«ΡΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² gitΒ», Π΄Π²Π° Π΄ΡΡΠ³ΠΈΡ
, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½Π΅ ΡΠ°ΠΊ ΠΏΠΎΡΡΠΎΡΠ½Π½Ρ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡΡ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Git, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ.
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΎΡΠΌΠ΅Π½Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, git reset
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅.ΠΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅Π»Π΅ΠΉ ΡΡΠΈ Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ: ΠΏΡΠΈ ΡΠ±ΡΠΎΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΎΠ²Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅Π½Ρ.
ΠΠ΅ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ
ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git reset
, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠΎΡΠ»Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ, ΡΡΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π½Π΅Π΅.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.ΠΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Π²Π°ΡΠΈΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΠ°ΡΡΡ ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΠΈΡΡΠ΅Π·Π»Π°. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π½ΠΈΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠ΅ΡΠ²Ρ origin / master
- ΡΡΠΎ Π²Π΅ΡΡΠΈΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π²Π°ΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ master
.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ°, Git ΠΏΠΎΠ΄ΡΠΌΠ°Π΅Ρ, ΡΡΠΎ Π²Π°ΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ origin / master
, ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²Π°ΡΠΈΡ
ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π², ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π°ΠΏΡΡΠ°Π΅Ρ ΠΈ ΡΠ°ΡΡΡΡΠΎΠΈΡ Π²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ git reset
Π΄Π»Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΎΡΠ΅Π», Π° Π½Π΅ Π΄Π»Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΠΌΠ°Π½Π΄Π° git revert
Π±ΡΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ
git reset
Π£Π΄Π°Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ ΡΠ°ΠΉΠ» Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
git reset
Π‘Π±ΡΠΎΡΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π»Π° ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π½ΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.ΠΡΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎ Π΄Π°Π΅Ρ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΎΡΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ Ρ Π½ΡΠ»Ρ.
git reset --hard
Π‘Π±ΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠΎΠΌΠΈΠΌΠΎ Π½Π΅ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ»Π°Π³ --hard
ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Git ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ: ΡΡΠΎ ΡΡΠΈΡΠ°Π΅Ρ Π²ΡΠ΅ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠ²ΠΎΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ.
git reset
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π½Π°Π·Π°Π΄ Π½Π° commit
, ΡΠ±ΡΠΎΡΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅, Π½ΠΎ ΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² ΠΏΠΎΠΊΠΎΠ΅. ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Ρ
, Π±ΡΠ΄ΡΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΡΡΠ΅ ΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ.
git reset --hard
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π½Π°Π·Π°Π΄ Π½Π°
ΠΈ ΡΠ±ΡΠΎΡΡΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ.ΠΡΠΎ ΡΡΠΈΡΠ°Π΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΠ΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ ΡΠ°ΠΉΠ»Π°
ΠΠΎΠΌΠ°Π½Π΄Π° git reset
ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ ΡΠ½ΠΈΠΌΠΊΠ°. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ Π΄Π²Π° ΡΠ°ΠΉΠ»Π° Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ hello.py
ΠΈ main.py
, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
# ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ hello.py ΠΈ main.py # ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π²ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ git add. # ΠΠΎΠΉΠΌΠΈΡΠ΅, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ²Π΅Ρ.py ΠΈ main.py # Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ Π² ΡΠ°Π·Π½ΡΡ
ΡΠ½ΠΈΠΌΠΊΠ°Ρ
# Unstage main.py git reset main.py # ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ hello.py git commit -m "ΠΠ½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² hello.py" # ΠΠ°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ main.py Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΡΠ½ΠΈΠΌΠΊΠ΅ git add main.py git commit -m "Edit main.py"
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, git reset
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π½Π° Π²Π°ΡΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠ°Ρ
, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.ΠΠ½ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π°Π΄ Π½ΠΎΠ²ΡΠΌ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠΌ, Π½ΠΎ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π²ΡΠ±ΡΠΎΡΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΡΠ½ΠΈΠΌΠΊΠΎΠ².
# Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `foo.py` ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄ # ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ Π² ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° git add foo.py git commit -m" ΠΠ°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π±Π΅Π·ΡΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ "# ΠΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅` foo.py` ΡΠ½ΠΎΠ²Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ # ΠΠ°ΡΠΈΠΊΡΠΈΡΡΠΉΡΠ΅ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ½ΠΈΠΌΠΎΠΊ git commit -a -m "ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΌΠΎΡ ΡΡΠΌΠ°ΡΡΠ΅Π΄ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ" # Π Π΅ΡΠΈΡΠ΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ git reset --hard HEAD ~ 2
git ΠΠΎΠΌΠ°Π½Π΄Π° reset HEAD ~ 2
ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ Π½Π°Π·Π°Π΄ Π½Π° Π΄Π²Π΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΄Π°Π»ΡΡ Π΄Π²Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ
ΡΠ½ΠΈΠΌΠΊΠ° ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°.ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ±ΡΠΎΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½Π΅ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
Π Π΅Π·ΡΠΌΠ΅
ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ git reset
- ΠΌΠΎΡΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Git. Π‘Π±ΡΠΎΡ Git
ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Β«Π’ΡΠ΅Ρ
Π΄Π΅ΡΠ΅Π²ΡΡΡ
GitΒ». ΠΡΠΈΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΈΡΡΠΎΡΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ( HEAD
), ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΡΡΠΌ.ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ --soft, --mixed
ΠΈ --hard
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Ρ Π² git reset
.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΡΡΠ³ΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ Git, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΡΠ±ΡΠΎΡΠ°. Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ
Π½Π° ΠΈΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
: git status, git log, git add, git checkout, git reflog,
ΠΈ git revert
.
.
git-ΡΠ±ΡΠΎΡ (1)
Π ΡΠ°Π±Π»ΠΈΡΠ°Ρ
Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅:
git reset --option target
Π΄Π»Ρ ΡΠ±ΡΠΎΡΠ° HEAD
Π½Π° Π΄ΡΡΠ³ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ( target
) Ρ Π΄ΡΡΠ³ΠΈΠΌ
ΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π ΡΡΠΈΡ
ΡΠ°Π±Π»ΠΈΡΠ°Ρ
A
, B
, C
ΠΈ D
- ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ
ΡΠ°ΠΉΠ». ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ
ΡΠ°ΠΉΠ» Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ A
Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅, Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ B
Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ΅, Π²
ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ C
Π² HEAD
ΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ D
Π² ΡΠ΅Π»ΠΈ, Π·Π°ΡΠ΅ΠΌ git reset --soft
ΡΠ΅Π»Ρ
ΠΎΡΡΠ°Π²ΠΈΡ ΡΠ°ΠΉΠ» Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ A
ΠΈ Π²
ΠΈΠ½Π΄Π΅ΠΊΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π
.ΠΠ½ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ (Ρ. Π. ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ) HEAD
(Ρ. Π. ΠΠΎΠ½ΡΠΈΠΊ
ΡΠ΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΠΊΠ°, Π΅ΡΠ»ΠΈ Π²Ρ Π² ΠΎΠ΄Π½ΠΎΠΉ) Π½Π° ΡΠ΅Π»Ρ
(Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ ΡΠ°ΠΉΠ»
Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ D
).
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
A B C D - ΠΌΡΠ³ΠΊΠ°Ρ A B D
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ A D D
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ D D D
--merge (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
--keep (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
A B C C - ΠΌΡΠ³ΠΊΠ°Ρ A B C
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ A C C
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ C C C
--merge (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
- ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ A C C
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
B B C D - ΠΌΡΠ³ΠΊΠΈΠΉ B B D
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ B D D
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ D D D
- ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ D D D
--keep (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
B B C C - ΠΌΡΠ³ΠΊΠΈΠΉ B B C
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ B C C
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ C C C
- ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ C C C
- Π₯ΡΠ°Π½ΠΈΡΡ B C C
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
B C C D - ΠΌΡΠ³ΠΊΠ°Ρ B C D
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ B D D
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ D D D
--merge (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
--keep (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
B C C C - ΠΌΡΠ³ΠΊΠ°Ρ B C C
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ B C C
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ C C C
- ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ B C C
- ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ B C C
reset --merge
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ±ΡΠΎΡΠ΅ ΠΈΠ· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡΡΡΠ΅ΠΉ
ΡΠ»ΠΈΡΡ.ΠΡΠ±Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΡΠ»ΠΈΡΠ½ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
ΡΡΠ°ΡΡΠ²ΡΡΡΠΈΠΉ Π² ΡΠ»ΠΈΡΠ½ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΈΠ½Π΄Π΅ΠΊΡΡ
ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΡΠ°Π±ΠΎΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ
ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΈ ΡΠ΅Π»ΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅
ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ ΠΈ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, Π·Π½Π°ΡΠΈΡ, ΠΌΡ Π½Π΅
ΡΠ±ΡΠΎΡ ΠΈΠ· ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΡΠ°Π»ΠΎΡΡ ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΠΈΡΠ½ΠΈΡ
Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠΏΡΠΈΡ --merge
.
reset --keep
ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΡΠΈΠΊΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠ΅, ΡΠΎΡ
ΡΠ°Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ
Π΄Π΅ΡΠ΅Π²ΠΎ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±ΡΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ, ΠΌΡ
Ρ
ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ, ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ,
ΡΠ±ΡΠΎΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΠΎΠ±Π°
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΠΈ HEAD
, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ HEAD
ΠΈ
ΡΠ΅Π»Ρ.ΠΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅
Π·Π°ΠΏΠΈΡΠΈ.
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΠ°Π±Π»ΠΈΡΠ°Ρ
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ
Π·Π°ΠΏΠΈΡΠ΅ΠΉ:
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
X U A B - ΠΌΡΠ³ΠΊΠΈΠΉ (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ X B B
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ B B B
- ΡΠ»ΠΈΡΠ½ΠΈΠ΅ B B B
--keep (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ HEAD
-------------------------------------------------- -
X U A A - ΠΌΡΠ³ΠΊΠΎΠ΅ (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
- ΡΠΌΠ΅ΡΠ°Π½Π½ΡΠΉ X A A
- ΠΆΠ΅ΡΡΠΊΠΈΠΉ Π Π Π
- ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ A A A
--keep (Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ)
X
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π»ΡΠ±ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, Π° U
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ.
.