Git ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ: ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² Git
Git Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 8. ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² git?
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π² git? ΠΠ°ΡΠ½Π΅ΠΌ Ρ Π²ΠΎΠΏΡΠΎΡΠ° ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΡΠ΅ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ git revert ΠΈ git reset.
ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π°Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΈ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΡΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π²Π·ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠ°ΠΉΠ», Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² Π²Π°ΡΡ ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΉΠ» ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ.Β ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ main.c ΠΈ Π²Π½Π΅ΡΠ»ΠΈ Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±ΡΒ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ (ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ)Β Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git checkout.
> git checkout -- main.c
ΠΠ»ΡΡ β- -β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΡΠ°ΠΉΠ» Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ Π±ΡΠ°Π½ΡΠ΅ (Π²Π΅ΡΠΊΠ΅).
ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² git
Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°Π½ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ git ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π² Π½Π΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
> git init
ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°ΠΉΠ» main.c.
> touch main.c
ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
> git add main.c > git commit -m "first commit" [master (root-commit) 86f1495] first commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 main.c
ΠΠ½Π΅ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ».
> echo "// main.c file" > main.c
Π ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ.
> git add main.c > git commit -m "second commit" [master d142679] second commit 1 file changed, 1 insertion(+)
Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ°.
> git log --oneline d142679 second commit 86f1495 first commit
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ΄Π°Π»ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΠΌ Π΄ΡΡΠ³ΠΎΠΉ. ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c.
> echo "// author: Writer" > main.c
ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ Π·Π°ΠΌΠ΅ΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
> git add main.c > git commit --amend -m "third commit" > git log --oneline 18411fd third commit 86f1495 first commit
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ: ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠΏΠ°Π» ΠΊΠΎΠΌΠΌΠΈΡ Ρ id=d142679, Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Ρ id=18411fd.
ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ°ΠΉΠ»Π΅ Π² Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅
Π‘Π΄Π΅Π»Π°Π΅ΠΌ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ main.c, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
> echo "// Some text 1" > main.c > git add main.c > git commit -m "fourth commit" [master dcf7253 ] fourth commit 1 file changed, 1 insertion(+), 1 deletion(-) > echo "// Some text 2" > main.c > git add main.c > git commit -m "fifth commit" [master 7f2eb3a ] fifth commit 1 file changed, 1 insertion(+), 1 deletion(-) > git log --oneline 7f2eb3a fifth commit dcf7253 fourth commit 18411fd third commit 86f1495 first commit
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ βsecond commitβ Π½Π° βthird commitβ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΈΠ΄Π΅Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ βfirst commitβ.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ, ΡΡΠΎ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π±ΡΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌΠΈ, ΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ Π²Π΅ΡΡΠΈΠΈ 18411fd ΠΈ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅Π΅. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ, Π½ΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ, ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²Π½Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠΉ Π²Π°Ρ ΡΠ°ΠΉΠ», ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΅ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΠΈΠΊΡΠΈΡΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΡΠΎΡΡΠΎ ΡΠ°ΠΊ Π²Π·ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π²Π΅ΡΠΊΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ β ΡΡΠΎ Π½Π°ΡΡΡΠΈΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ, ΡΡΠΎ ΠΈΠ΄Π΅Ρ Π² ΡΠ°Π·ΡΠ΅Π· Ρ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉΒ git. ΠΠ΄Π½ΠΈ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² β ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ· Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π²Π½Π΅ΡΡΠΈ Π² Π½Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.Β ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.cΒ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ, Π½Π° ΡΠ΅ΠΊΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠΌΠΌΠΈΡΠ°.
> git checkout main.c > cat main.c // Some text 2
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π² ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Ρ id=18411fd Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ Ρ tree-ish (ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π·Π΄Π΅ΡΡ)
> git show 18411fd:main.c // author: Writer
ΠΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ Π² ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΡΠ°ΠΉΠ» main.c ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ id=18411fd.
> git checkout 18411fd -- main.c > cat main.c // author: Writer
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠΌΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ Β id=18411fd. Π‘Π΄Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΡΠΊΠ°ΠΆΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ Π΄Π²Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ .
> git add main.c > git commit -m "return main.c from third commit" [master cffc5ad] return main.c from third commit 1 file changed, 1 insertion(+), 1 deletion(-) > git log --oneline cffc5ad return main.c from third commit 7f2eb3a fifth commit dcf7253 fourth commit 18411fd third commit 86f1495 first commit
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° main.c ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΠ»ΠΈ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ git revert Π΄Π»Ρ Π±ΡΡΡΡΠΎΠΉ ΠΎΡΠΌΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΠΎΠ΄Π½ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git revert.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΎΡΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ Ρ id=cffc5ad. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ Π²Π²Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ gitΒ revert (ΡΠΌ. Π½ΠΈΠΆΠ΅), ΡΠΈΡΡΠ΅ΠΌΠ°Β gitΒ Π²ΡΠ΄Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, ΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Ρ, ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
> git revert cffc5ad [master 81499da] Revert "return main.c from third commit" 1 file changed, 1 insertion(+), 1 deletion(-)
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
> git config core.editor "notepad.exe"
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π² βGit Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 3. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Gitβ
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»Π°ΡΡ Π»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°.
> git config core.editor notepad.exe
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
> git log --oneline 81499da Revert "return main.c from third commit" cffc5ad return main.c from third commit 7f2eb3a fifth commit dcf7253 fourth commit 18411fd third commit 86f1495 first commit
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° Π²Π΅ΡΠ½ΡΠ»ΠΎΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ id=7f2eb3a.Β
> cat main.c // Some text 2 > git show 7f2eb3a:main.c // Some text 2
ΠΡΠΌΠ΅Π½Π° Π³ΡΡΠΏΠΏΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠΠΠΠΠΠΠ! ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠ΅Π½Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ!
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠ΅ΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD, ΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠ°ΡΡΡ βGit Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . Π§Π°ΡΡΡ 7. ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ HEAD ΠΈ tree-ishβ.Β HEAD ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π²Π΅ΡΡΠΈΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ Π·Π°ΠΏΠΈΡΡ, Ρ.Π΅. Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΎΠΏΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git resetΒ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ HEAD ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌΒ stage ΠΈ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π²ΡΠ΅ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ) (ΠΊΠ»ΡΡ βsoft)
ΠΠ»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEADΒ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π±Π΅Π· ΠΎΠΊΠ°Π·Π°Π½ΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΡ ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (Π² stage, ΠΏΡΠΈ ΡΡΠΎΠΌ, Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ),Β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠ»ΡΡ βsoft.Β ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΡΠ°Π· Π½Π° Π½Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
> git log --oneline 81499da Revert "return main.c from third commit" cffc5ad return main.c from third commit 7f2eb3a fifth commit dcf7253 fourth commit 18411fd third commit 86f1495 first commit
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
> cat main.c // Some text 2
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
> git show HEAD:main.c // Some text 2
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ HEAD Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Ρ id=dcf7253.
> git reset --soft dcf7253
ΠΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
> git log --oneline dcf7253 fourth commit 18411fd third commit 86f1495 first commit
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
> git show HEAD:main.c // Some text 1
Π ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΠ°ΠΉΠ» main.c ΠΎΡΡΠ°Π»ΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌ (ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π² stage).
> cat main.c // Some text 2
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° main.c ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ.
> git commit -m "soft reset example" [master db1a8b0] soft reset example 1 file changed, 1 insertion(+), 1 deletion(-)
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
> git log --oneline db1a8b0 soft reset example dcf7253 fourth commit 18411fd third commit 86f1495 first commit
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΡΠΎΠΏΠ°Π»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ:
81499da Revert "return main.c from third commit" cffc5ad return main.c from third commit 7f2eb3a fifth commit
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ ΠΎΡΠΈΡΡΠΊΠ°Β stage (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ) (ΠΊΠ»ΡΡ βmixed)
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git reset Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ βmixed, ΡΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΒ HEADΒ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡ Π½Π° Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ stage.Β ΠΡΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
> git reset --mixed dcf7253 Unstaged changes after reset: M Β Β Β Β Β Β main.c
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
> git log --oneline dcf7253 fourth commit 18411fd third commit 86f1495 first commit
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
> git show HEAD:main.c // Some text 1
Π€Π°ΠΉΠ» main.cΒ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ.
> cat main.c // Some text 2
ΠΡΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π°ΡΠ°Π»Π΅ Π² stage, Π° ΠΏΠΎΡΠΎΠΌ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
> git add main.c > git commit -m "mixed reset example" [master ab4ef00] mixed reset example 1 file changed, 1 insertion(+), 1 deletion(-)
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΎΡΠΈΡΡΠΊΠ° stage ΠΈ Π²Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Β ΡΠ°Π±ΠΎΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ (ΠΊΠ»ΡΡ βhard)
ΠΡΠ»ΠΈ Π²Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ ΠΊΠ»ΡΡΠ΅ΠΌ βhard, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ ΡΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ git (ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, stage ΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ) Π±ΡΠ΄ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ HEAD.
Π’Π΅ΠΊΡΡΠ΅Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ.
> git log --oneline ab4ef00 mixed reset example dcf7253 fourth commit 18411fd third commit 86f1495 first commit
ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
> cat main.c // Some text 2 > git show HEAD:main.c // Some text 2
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎ.
Π£Π΄Π°Π»ΠΈΠΌ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Ρ id=86f1495.
> git reset --hard 86f1495 HEAD is now at 86f1495 first commit
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
> git log --oneline 86f1495 first commit
Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΈ stage.
> git status On branch master nothing to commit, working tree clean
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π° main.c Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
> cat main.c > git show HEAD:main.c
Π€Π°ΠΉΠ» main.c ΠΏΡΡΡ.
Π’.ΠΊ. ΠΌΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git reset Ρ ΠΊΠ»ΡΡΠ΅ΠΌ βhard, ΡΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ.
ΠΠ£ΠΠ¬Π’Π ΠΠ§ΠΠΠ¬ ΠΠΠΠ£Π ΠΠ’ΠΠ« Π‘ ΠΠ’ΠΠ ΠΠΠΠΠΠΠΠ!
ΠΡΠ»ΠΈΡΠ½ΡΠΉ ΠΊΡΡΡ ΠΏΠΎ gitΒ Π΄Π΅Π»Π°ΡΡ ΡΠ΅Π±ΡΡΠ° ΠΈΠ· GeekBrains, Π½Π°ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ βΠΡΡΡΡβ ΠΊΡΡΡ βGit. ΠΡΡΡΡΡΠΉ ΡΡΠ°ΡΡβ, ΠΎΠ½Β Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ!
<<<Β Π§Π°ΡΡΡ 8. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ
17. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· Π²Π΅ΡΠΊΠΈ
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΡΠ΄Π°Π»ΡΡΡ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ
Revert
ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΈ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ ΠΈ Β«ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΡΠΉΒ» ΠΊΠΎΠΌΠΌΠΈΡΡ Π²ΠΈΠ΄Π½Ρ Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ (ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git log
).
Π§Π°ΡΡΠΎ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΡΠΎ Π±ΡΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΡΠ»ΠΎ Π±Ρ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΠΈΠ΄, ΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ. ΠΠΎΠΌΠ°Π½Π΄Π° Β«Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Β» Π΄Π°ΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΠ»Π° Π±Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΠΈΡΡΠΎΡΠΈΠΈ git log
.
01 ΠΠΎΠΌΠ°Π½Π΄Π° reset
ΠΡ ΡΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ Π΄Π»Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·ΠΎΠ½Ρ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ HEAD Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅).
ΠΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ (Ρ.Π΅. Ρ
ΡΡ, Π²Π΅ΡΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠΌΡ ΡΠ΅Π³Π°), ΠΊΠΎΠΌΠ°Π½Π΄Π° reset
β¦
- ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΠΊΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠΊΠ°Π·ΡΠ²Π°Π»Π° Π½Π° Π½ΡΠΆΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ±ΡΠΎΡΠΈΡ Π±ΡΡΠ΅ΡΠ½ΡΡ Π·ΠΎΠ½Ρ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
- ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ±ΡΠΎΡΠΈΡ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ
02 ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΡΡ ΠΈΡΡΠΎΡΠΈΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π΅Π»Π°Π΅ΠΌ Π±ΡΡΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π°ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git hist
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git hist * 45fa96b 2011-03-09 | Revert "Oops, we didn't want this commit" (HEAD, master) [Alexander Shvets] * 846b90c 2011-03-09 | Oops, we didn't want this commit [Alexander Shvets] * fa3c141 2011-03-09 | Added HTML header (v1) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags (v1-beta) [Alexander Shvets] * 43628f7 2011-03-09 | Added h2 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° Π² ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠ΅ — Β«OopsΒ» ΠΈ Β«Revert OopsΒ». ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ΄Π°Π»ΠΈΠΌ ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ±ΡΠΎΡΠ°.
03 ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΌΠ΅ΡΡΡΠ΅ ΡΡΡ Π²Π΅ΡΠΊΡ
ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΡΠ΅Π³ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΅Π³ΠΎ Π½Π°ΠΉΡΠΈ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git tag oops
04 Π‘Π±ΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΊ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΡ Oops
ΠΠ»ΡΠ΄Ρ Π½Π° ΠΈΡΡΠΎΡΠΈΡ Π»ΠΎΠ³Π° (ΡΠΌ. Π²ΡΡΠ΅), ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡ Ρ ΡΠ΅Π³ΠΎΠΌ Β«v1Β» ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ±ΡΠΎΡΠΈΠΌ Π²Π΅ΡΠΊΡ Π΄ΠΎ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅ΡΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π³, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΡ ΡΠ΅Π³Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ±ΡΠΎΡΠ° (Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π³Π°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ρ ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git reset --hard v1 git hist
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git reset --hard v1 HEAD is now at fa3c141 Added HTML header $ git hist * fa3c141 2011-03-09 | Added HTML header (HEAD, v1, master) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags (v1-beta) [Alexander Shvets] * 43628f7 2011-03-09 | Added h2 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
ΠΠ°ΡΠ° Π²Π΅ΡΠΊΠ° master ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ v1, Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Oops ΠΈ Revert Oops Π² Π²Π΅ΡΠΊΠ΅ ΡΠΆΠ΅ Π½Π΅Ρ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ --hard
ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½ΠΎΠ²ΡΠΌ head Π²Π΅ΡΠΊΠΈ.
05 ΠΠΈΡΠ΅Π³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΅ΡΡΠ΅ΡΡΡ
Π§ΡΠΎ ΠΆΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ? ΠΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π° Π½ΠΈΡ ΡΡΡΠ»Π°ΡΡΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅, Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠΎΠΊΠ° ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΡΠ΅Π³ Β«oopsΒ». ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git hist --all
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git hist --all * 45fa96b 2011-03-09 | Revert "Oops, we didn't want this commit" (oops) [Alexander Shvets] * 846b90c 2011-03-09 | Oops, we didn't want this commit [Alexander Shvets] * fa3c141 2011-03-09 | Added HTML header (HEAD, v1, master) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags (v1-beta) [Alexander Shvets] * 43628f7 2011-03-09 | Added h2 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
ΠΡ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π½Π΅ ΠΈΡΡΠ΅Π·Π»ΠΈ. ΠΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ. ΠΡΠΎΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π² Π²Π΅ΡΠΊΠ΅ master
. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ Π½Π΅ ΠΎΡΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΈΡ
ΡΠ΅Π³Π°ΠΌΠΈ, ΠΎΠ½ΠΈ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π±Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π½ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ Π±Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½ΠΈΡ
, ΠΊΡΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΡ
Ρ
ΡΡ ΠΈΠΌΠ΅Π½. ΠΠΎΠΌΠΌΠΈΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅Ρ ΡΡΡΠ»ΠΎΠΊ, ΠΎΡΡΠ°ΡΡΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°.
06 ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ ΡΠ±ΡΠΎΡΠ°
Π‘Π±ΡΠΎΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΠ°Ρ , ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ΅Π½. ΠΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π»ΡΠ±ΠΎΠΉ Β«Π°Π²Π°ΡΠΈΠΈΒ» ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ±ΡΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Π΅ΡΠΊΠ° Β«ΡΠ°ΡΡΠ°ΡΠ΅Π½Π°Β» Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ , ΡΠ±ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΠΈΡΡ Ρ ΡΠΎΠ»ΠΊΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π΅ΡΠΊΠΈ.
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Git-ΠΊΠΎΠΌΠΌΠΈΡ
ΠΠ· ΡΡΠ°ΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ Git-ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΎΡΠΈΡ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π Π°Π±ΠΎΡΠ°Ρ Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ Git, Π²Ρ ΡΠ°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ΡΡ Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ: ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅Π½ΡΠΆΠ½ΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΡΠ΅ΠΌ-ΡΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±Π½ΠΎΠΌ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π»ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π½Π΅ΠΏΡΠΈΡΡΠ½ΡΠΌΠΈ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΠ²ΡΡΠΈΡ ΠΊΠ°ΠΊ Π½ΠΎΠ½ΡΠ΅Π½Ρ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄. Π‘ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΡΠ΅Ρ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git revert HEAD
ΠΠΎΠΌΠ°Π½Π΄Π° revert
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊ HEAD
β ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π²Π΅ΡΠΊΠ΅.
ΠΠΎΡΠ²ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Π½Π΅ Π½ΡΠΆΠ½ΠΎ, ΠΊ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ --no-edit
. Π‘ΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
git revert HEAD --no-edit
Π§ΡΠΎΠ±Ρ ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ:
git log
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² Π»ΠΎΠ³Π°Ρ , Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅:
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Git-ΡΡΠ°ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git status
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, Π²ΠΌΠ΅ΡΡΠΎ HEAD Π²ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π΅Π³ΠΎ Ρ
Π΅Ρ ΠΈΠ»ΠΈ ΡΠ΅Π³ (ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² Π»ΠΎΠ³Π°Ρ
/ΠΈΡΡΠΎΡΠΈΠΈ). ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠ°Ρ ΠΎΡΠΌΠ΅Π½Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈΠ·-Π·Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ², ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Git Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. Π£Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ git status
.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, revert
ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Β«ΡΠ»Π΅Π΄ΡΒ» Π² ΠΈΡΡΠΎΡΠΈΠΈ Π²Π΅ΡΠΊΠΈ, Π° ΠΈΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΊΡΡΡΡ. Π Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ reset
ΠΎΡΠ½ΠΎΡΡΡΡΡ:
- ΠΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
- Π‘Π±ΡΠΎΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ Π·ΠΎΠ½Ρ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ).
- Π‘Π±ΡΠΎΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ).
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΌΠ΅ΡΡΡΠ΅ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΠΊΡ:
git tag oops
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ±ΡΠΎΡ Π΄ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° oops:
git reset --hard t1
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ:
git hist
ΠΠ΄Π½Π°ΠΊΠΎ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΡΠ΅ΡΡΠ΅ΡΡΡ. ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²:
git hist --all
ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π° ΠΌΠ΅ΡΡΠ΅, ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· Π½Π°ΡΠ΅ΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ°ΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠ±ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ±ΠΈΡΡ Ρ ΡΠΎΠ»ΠΊΡ Π΄ΡΡΠ³ΠΈΡ
ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ revert
.
16. ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
Π¦Π΅Π»ΠΈ
- ΠΠ°ΡΡΠΈΡΡΡΡ ΠΎΡΠΌΠ΅Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
01 ΠΡΠΌΠ΅Π½Π° ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²
ΠΠ½ΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, ΡΡΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π²Π΅ΡΠ½ΡΠΌΠΈ, ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ. ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π²ΠΎΠΏΡΠΎΡΠ°, Π·Π΄Π΅ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ.
ΠΡ ΠΎΡΠΌΠ΅Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΎΡΠΌΠ΅Π½ΡΡΡΠ΅Π³ΠΎ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
02 ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ
ΠΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» hello.html
Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ.
Π€Π°ΠΉΠ»: hello.html
<html> <head> </head> <body> <h2>Hello, World!</h2> <!-- This is an unwanted but committed change --> </body> </html>
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git add hello.html git commit -m "Oops, we didn't want this commit"
03 Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΎΡΠΌΠ΅Π½ΡΡΡΠΈΠΌΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅
Π§ΡΠΎΠ±Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git revert HEAD
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅ ΠΊΠ°ΠΊ Π΅ΡΡΡ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ». ΠΡ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅β¦
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git revert HEAD --no-edit [master 45fa96b] Revert "Oops, we didn't want this commit" 1 files changed, 1 insertions(+), 1 deletions(-)
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΎΡΠΌΠ΅Π½ΠΈΠ»ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΌΡ ΡΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ HEAD
Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΎΡΠΌΠ΅Π½Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΠΈΡΡΠΎΡΠΈΠΈ, ΡΠΊΠ°Π·Π°Π² Π΅Π³ΠΎ Ρ
ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΠΌΠ°Π½Π΄Ρ --no-edit
ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠ½Π° Π±ΡΠ»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π²ΡΡ
ΠΎΠ΄Π½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
04 ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π»ΠΎΠ³
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π»ΠΎΠ³Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΎΡΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² Π½Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
git hist
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
$ git hist * 45fa96b 2011-03-09 | Revert "Oops, we didn't want this commit" (HEAD, master) [Alexander Shvets] * 846b90c 2011-03-09 | Oops, we didn't want this commit [Alexander Shvets] * fa3c141 2011-03-09 | Added HTML header (v1) [Alexander Shvets] * 8c32287 2011-03-09 | Added standard HTML page tags (v1-beta) [Alexander Shvets] * 43628f7 2011-03-09 | Added h2 tag [Alexander Shvets] * 911e8c9 2011-03-09 | First Commit [Alexander Shvets]
ΠΡΠ° ΡΠ΅Ρ Π½ΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ (Ρ ΠΎΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΡ). ΠΠ½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°ΠΆΠ΅ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ Π²Π΅ΡΠΊΠ°Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅Π².
05 ΠΠ°Π»Π΅Π΅
ΠΠ°Π»Π΅Π΅ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ΅Ρ Π½ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
ΠΠ°ΠΊ ΡΠ±ΡΠ°ΡΡ ΠΈΠ· Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ
Π€Π°ΠΉΠ»Ρ ΠΏΡΠΎΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄Π°Π½Π½ΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅Ρβ¦ Π Π²Π΄ΡΡΠ³ Ρ ΠΎΡΠ΅ΡΡΡ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΡ. Π ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΠΏΠ°Π» ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΠΌ Π±ΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. ΠΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠ΅ ΡΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΡ.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΊΠΎΠ³Π΄Π°-ΡΠΎ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ» Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°ΠΊ ΡΠΏΡΠ°Π²ΠΈΡΡΡΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ? ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ Π±Ρ?
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠΎΠΏΠ°Π» ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ°ΠΌ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ Ρ ΠΏΡΠΈΠ²Π΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Git, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ, ΠΈ ΠΏΠΎΠ΄Π΅Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌΠΈ ΠΏΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ· Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ (ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°)
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΡΠ΅ΡΠ±Π°
ΠΡΠ°ΠΊ, Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°Π·ΠΎΠ²ΡΠΌ ΡΡΠΎΡ ΡΠ°ΠΉΠ» .env
. Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ»ΡΡΠΈΠ»ΠΎΡΡ, Π½Π°Π΄ΠΎ Π·Π°Π΄Π°ΡΡ ΡΠ΅Π±Π΅ ΠΏΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ²:
- ΠΡΠΏΡΠ°Π²Π»Π΅Π½ Π»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ?
- Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ?
βΠΠΎΠΌΠΌΠΈΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠΎ, Π² ΠΎΠ±ΡΠ΅ΠΌ-ΡΠΎ, Π²ΠΎΠ·Π½ΠΈΠΊΡΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ³ΡΠΎΠ·Ρ Π½Π΅ Π½Π΅ΡΡΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π²ΡΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ:
git reset HEAD^ --soft
Π€Π°ΠΉΠ»Ρ ΠΎΡΡΠ°Π½ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π½Π΅ΡΡΠΈ Π² ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΆΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ³Π΄Π° ΠΏΠΎΡΡΡΠΏΠΈΡΠ΅ ΡΠ°ΠΊ:
git rm .env --cached
git commit --amend
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ --amend
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΌΡΠΌ ΡΠ²Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. ΠΡΠ»ΠΈ Π²Ρ, ΠΏΠΎΡΠ»Π΅ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
git rebase -i HEAD~{Π½Π° ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½ΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡΡΡ?}
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΡΠ½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ.
βΠΠΎΠΌΠΌΠΈΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠΎ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΌ, ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π±ΠΎΡΠ°ΠΌ ΠΈΠ»ΠΈ Π»ΡΠ΄ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ Π½Π΅ Π΄ΠΎΠ²Π΅ΡΡΠ΅ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π²Π½Π΅ΡΡΠΈ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΏΠ°ΡΠΎΠΉ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ ΡΠ±ΡΠ°ΡΡ ΡΠ°ΠΉΠ»Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ Git, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ git filter-branch ΠΈΠ»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ BFG Repo-Cleaner.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ git filter-branch
:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch .env" --prune-empty --tag-name-filter cat -- --all
ΠΠΎ, Π΄Π΅Π»Π°Ρ ΡΡΠΎ, ΡΡΠΈΡΡΠ²Π°ΠΉΡΠ΅ Π΄Π²Π° Π²Π°ΠΆΠ½ΡΡ Π°ΡΠΏΠ΅ΠΊΡΠ° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²Π½ΠΎΡΠΈΠΌΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
- ΠΡ ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Git. ΠΡΠ»ΠΈ Π½Π° ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ, Π΅ΡΠ»ΠΈ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π΅Π³ΠΎ ΡΠΎΡΠΊΠΈ, ΠΎΡΠΊΡΡΡΡΠ΅ PR, ΡΠΎ ΡΡΠΎ Π½Π°ΡΡΡΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ. Π ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΊΠ°ΠΊ ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌΡ ΠΈ ΠΏΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π½Π΅ Π²Π½ΠΎΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π΅Π³ΠΎ ΠΈΡΡΠΎΡΠΈΡ.
- ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΡΡΠΈΡΡ ΠΊΠ΅Ρ. ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ Π² ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΠΈ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΎΡΠΈΡΡΠΈΡΡ Π΅Π³ΠΎ ΠΊΠ΅Ρ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΈΡΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°Π»ΠΈ ΠΈΡΡΠΎΡΠΈΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΎΡΡΠ°Π½Π΅ΡΡΡ Π² ΠΊΠ΅ΡΠ΅. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΊ Π½Π΅ΠΌΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π·Π½Π°ΡΡ Π΅Π³ΠΎ ID, Π½ΠΎ ΠΊ Π½Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΠΊΠ΅Ρ Π½Π΅ ΠΎΡΠΈΡΡΡΡ.
ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ?
ΠΡΠ»ΠΈ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π²ΠΎΠΏΡΠΎΡ, Π²ΡΠ½Π΅ΡΠ΅Π½Π½ΡΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΡΠΎ β Π½ΡΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ΅Π½, ΠΈΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ, ΠΏΠΎ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ½ β Π½Π΅ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠ΅ΡΡΡ ΠΏΠΎΠΏΠ°Π²ΡΠΈΠ΅ Π² Π½Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ.
ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Ρ Π±ΠΎΡΠ°ΠΌΠΈ ΠΈ Ρ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΠ°ΠΊ ΠΆΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΡΡ?
- ΠΠ΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠΎΠ»ΠΈ. ΠΡΠΎ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΡΠ΅ΡΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΡΡΠ΅Π΄ΡΠΈΠ΅ Π² ΠΎΠ±ΡΠΈΠΉ Π΄ΠΎΡΡΡΠΏ, ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ.
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ°ΠΉΠ»
.gitignore
. Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ Π².gitignore
Π·Π°ΠΏΠΈΡΠΈ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Git Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» Π±Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². - ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
- ΠΡΠΏΡΠ°Π²ΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ, ΡΠ½Π°Π±Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΡΠΊΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ. ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π°Ρ, ΠΏΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Ρ ΠΎΡΠ΅Π½ΡΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ° Ρ ΡΠ°Π·ΡΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Git
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠ΅ΡΠ΅ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠΎΠΈΡ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ.
βΠ₯ΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ .env (ΠΈΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅)
ΠΠ»ΡΡΠΈ ΠΊ API ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΡΠΎΠΈΡ Ρ
ΡΠ°Π½ΠΈΡΡ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ .env
. ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅, Π΅ΡΠ»ΠΈ Git Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° .env
, Π²Ρ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² ΡΡΠΎΡ ΡΠ°ΠΉΠ» Π½ΠΎΠ²ΡΠΉ ΠΊΠ»ΡΡ, Π½Π΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅ Π΅Π³ΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊ Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ process
.
βΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠ»ΡΡΠΈ API
Π‘ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ API Π»Π΅Π³ΠΊΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°Π½ΠΎΠ²ΠΎ. ΠΡΠ»ΠΈ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ , Π° Π½Π΅ Π½Π΅ΡΡΠΎ Π²ΡΠΎΠ΄Π΅ Π»ΠΎΠ³ΠΈΠ½ΠΎΠ² ΠΈ ΠΏΠ°ΡΠΎΠ»Π΅ΠΉ.
βΠ₯ΡΠ°Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΈ API, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
ΠΠ»ΡΡΠΈ API ΠΎΠ±ΡΡΠ½ΠΎ Π½ΡΠΆΠ½Ρ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², Π²ΡΠΎΠ΄Π΅ Netlify, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ»ΡΡΠΈ Π² Π·Π°ΡΠΈΡΡΠ½Π½ΡΡ
Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ
. Π’Π°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π½Π΅Π΄ΡΡΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ process
.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
βΠΠΎΠ±Π°Π²ΡΡΠ΅ Π·Π°ΠΏΠΈΡΡ ΠΎ ΡΠ°ΠΉΠ»Π΅ .env Π² ΡΠ°ΠΉΠ» .gitignore
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Git Π½Π΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» Π±Ρ ΡΠ°ΠΉΠ»Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
βΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» .env.template
ΠΠ°Π»ΠΈΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΠΌ, ΠΊΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠ»ΡΡΠΈ API, ΠΈΠ·Π±Π°Π²Π»ΡΡ ΠΈΡ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
βΠΠ΅ ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ Git Π² ΡΠ΄Π°Π»ΡΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ
ΠΠΎΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΡΠ»ΠΈ Π²Ρ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ Π²ΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ, ΡΠΎ ΠΈΡΡΠΎΡΠΈΡ Git Π²Π°ΠΌ ΠΌΠ΅Π½ΡΡΡ ΠΈ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΡΠΎΠ³ΠΈ
ΠΠ°Π΄Π΅ΡΡΡ, ΠΌΠΎΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π Π²Π°ΠΌ ΡΠ»ΡΡΠ°Π»ΠΎΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π² ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΡΠΎ ΡΡΠ΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ?
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π² Git / Π₯Π°Π±Ρ
ΠΡΠΎ ΠΏΠΎΡΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Git. ΠΡΠ΅, ΡΡΠΎ Π·Π΄Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠΎ ΡΠ°ΡΡΡΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΡΡΠ½ΡΡ ΠΎ Git Π½Π° Π₯Π°Π±ΡΠ΅. ΠΠΎ Ρ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΎΠΏΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ Π³ΡΠ³Π»ΠΈΠ»ΡΡ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ Β«git ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ²Β».
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
ΠΡΠ»ΠΈ Π²Ρ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ Π½Π΅Π΄ΠΎΠ³Π»ΡΠ΄Π΅Π»ΠΈ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΡΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π½Π΅ ΡΠΎΡΡΠ°Π²ΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΡΡΠ΄Π°. ΠΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
git add .
ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ —amend (amend /ΙΛmΙnd/ β Π²Π½ΠΎΡΠΈΡΡ ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ, ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ, ΡΠ»ΡΡΡΠ°ΡΡ):
git commit --amend
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Ρ ΡΠΎΠΉ Π»ΠΈΡΡ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ ΡΡΠΎ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΎΡΡΠΎ ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅:
git commit --amend -m "ΠΠΎΠ²ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅"
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΠ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°
Π’ΡΡ ΡΡΡΡ ΠΏΠΎΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π²Π° ΠΊΠΎΠΌΠΌΠΈΡΠ°, Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π‘1
ΠΈ Π‘2
:
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ:
git rebase --interactive
# ΠΊΠΎΡΠΎΡΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ: git rebase -i
ΠΡΠΊΡΠΎΠ΅ΡΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, git rebase -i
ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ ΠΊΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ
r reword
ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡe edit
ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡs squash
ΡΠΊΠ»Π΅ΠΈΡΡ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² (squash /skwΙΚ/ β Π²ΡΠΈΡΠ½ΡΡΡ, ΡΠΆΠΈΠΌΠ°ΡΡ, ΡΡΠΊΠ²Π° π )
Π ΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π‘1
Π²ΠΌΠ΅ΡΡΠΎ pick
Π²ΠΏΠΈΡΠΈΡΠ΅ e
Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈΠ»ΠΈ r
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΠ² ΡΠ°ΠΉΠ», Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΎΡ Git:
Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ Π‘1
, Β«ΡΠΏΡΡΠ³Π½ΡΠ²Β» Ρ Π²Π΅ΡΠΊΠΈ master. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π·Π°ΠΏΡΡΡΠΈΠ²:
git branch
Π ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΠΌ:
* (no branch, rebasing master)
master
ΠΠ°Π»ΡΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΡΡΠ° Π³Π΄Π΅ ΠΌΡ ΠΌΠ΅Π½ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π΄Π΅Π»Π°Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΈΡ :
git add .
ΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΈΠΌ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ --amend
:
git commit --amend
ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΡΠ»Π΅Π΄ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ΅ (ΡΡΡΡ Π²ΡΡΠ΅ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ:
git rebase --continue
Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠΌΡΡ Π½Π° Π²Π΅ΡΠΊΡ master
Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΡΡΠΎ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ.
ΠΠΎΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΈ, Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠ½ΡΠΉ. Commit early, commit often.
Π£Π΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π² Git — git
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΠ΄ delete
Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ Ρ Π½Π΅ Π΄Π΅Π»Π°Π» ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ°, ΠΈ ΠΊΠΎΠ³Π΄Π° Ρ Π΄Π΅Π»Π°Ρ ΡΠΎΠ»ΡΠΎΠΊ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΌΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΠΊΠ°ΡΡΡΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ Π²Π΅ΡΠ²Ρ.
Π― ΡΠΈΡΠ°Ρ git help, ΠΈ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΡΡ Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎ git reset --hard HEAD
. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
git
git-rebase
git-reset
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ΠΡΡΠΎΡΠ½ΠΈΠΊ
hap497 Β Β
27 Π°Π²Π³ΡΡΡΠ° 2009 Π² 03:39
25 ΠΡΠ²Π΅ΡΠΎΠ²
3672
ΠΡΡΠΎΡΠΎΠΆΠ½ΠΎ: git reset --hard
ΡΠ΄Π°Π»ΠΈΡ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° . ΠΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ.
ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Π²Ρ ΡΠΈΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠ΅, ΡΠΎΠ³Π΄Π° ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ ΡΠ±ΠΈΠ²Π°ΡΡ…
git reset --hard HEAD~1
HEAD~1
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π³Π»Π°Π²ΠΎΠΉ.
ΠΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ git log
, Π½Π°ΠΉΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
git reset --hard <sha1-commit-id>
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈ Π΅Π³ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΡΠΎΠ»ΡΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ…
git push origin HEAD --force
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΡΡΠ½ΡΡΡ Π΅Π³ΠΎ, ΡΠΎ Π²Π°ΠΌ Π±ΡΠ»ΠΎ Π±Ρ Π»ΡΡΡΠ΅ Π½Π°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΡΡΠ½ΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ»ΡΠ΅ΡΡΡ Ρ ΠΈΡ ΡΠ°Π±ΠΎΡΠΎΠΉ, ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ.
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π°ΠΆΠ°Π»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ, Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git revert
, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ «mirror image», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±Π° ΠΊΠΎΠΌΠΌΠΈΡΠ° Π±ΡΠ΄ΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² ΠΆΡΡΠ½Π°Π».
FYI — git reset --hard HEAD
ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π½Π΅Π·Π°Π²Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. ΠΠ½ ΡΠ±ΡΠΎΡΠΈΡ Π²Π°Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΊ ΡΠ°ΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΡΠΎΡΡΠ΅Ρ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ «deleted», ΠΎΠ½ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² git reflog
, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΡΠΎΠ±ΡΠ°Π»ΠΈ ΠΌΡΡΠΎΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
gahooa Β Β
27 Π°Π²Π³ΡΡΡΠ° 2009 Π² 03:44
647
ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΆΠ°Π»ΠΈ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ git rebase -i
, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
, Π²ΡΡΡΠ½ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π°Π·Π°Π΄ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ (ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ). Π’ΠΎΠ³Π΄Π° Π΄Π΅Π»Π°ΡΡ:
git rebase -i HEAD~N
~N
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² N
( N
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ HEAD~10
). ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°ΠΌ Git, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π°ΡΡΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. ΠΡΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Git Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠ΄Π°Π»ΠΈΠ»ΠΈ, Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π».
Π ΠΊΠ½ΠΈΠ³Π΅ Git Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎ ΡΠ΅Π±Π°Π·ΠΈΠ½Π³Ρ Ρ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ Ρ ΡΡΠΈΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ, ΡΡΠΎ Π²Ρ ΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅, ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ»ΠΎΠ²ΠΎΠΉ ΡΠΎΠ»ΡΠΎΠΊ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Greg Hewgill Β Β
27 Π°Π²Π³ΡΡΡΠ° 2009 Π² 03:51
452
ΠΡΠ΅ ΠΎΠ΄Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ-ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΌΠΎΠΈΡ Π»ΠΈΡΠ½ΡΡ Π»ΡΠ±ΠΈΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄:
git rebase -i <commit>~1
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π·Π°ΠΏΡΡΠΊΡ ΡΠ΅Π±Π°Π·Π° Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ -i
Π² ΡΠΎΡΠΊΠ΅ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°ΡΠΈΡΡ. Π Π΅Π΄Π°ΠΊΡΠΎΡ Π½Π°ΡΠ½Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Ρ ΡΠ΅Ρ
ΠΏΠΎΡ. Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΠ΅ΡΠ΅ΡΡ, ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ». Rebase Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ rest ΡΠ°Π±ΠΎΡΡ, ΡΠ΄Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΆΡΡΠ½Π°Π».
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
1800 INFORMATION Β Β
27 Π°Π²Π³ΡΡΡΠ° 2009 Π² 03:49
315
Π― Π΄ΠΎΠ±Π°Π²Π»ΡΡ ΡΡΠΎΡ ΠΎΡΠ²Π΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΏΠΎΡΠ΅ΠΌΡ Π»ΡΠ±ΠΎΠΉ, ΠΊΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΡΠ°Π»ΡΡ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ, Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΈΠ·-Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Git!
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎ ‘undo’, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° commit (Π²Ρ ΠΏΠΎΠΉΠΌΠ°Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° ΡΠ΅ΠΏΠΎ):
git reset --soft HEAD~1
ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π°Π³ —hard , Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Rob Β Β
15 ΠΎΠΊΡΡΠ±ΡΡ 2012 Π² 18:17
74
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ
git rebase -p --onto SHA^ SHA
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ «SHA» ΡΡΡΠ»ΠΊΠΎΠΉ, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ. Π‘ΠΈΠΌΠ²ΠΎΠ» » ^ » Π² ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΡΠΌ.
http://sethrobertson.github.io/GitFixUm/fixup.html
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
raittes Β Β
31 Π°Π²Π³ΡΡΡΠ° 2015 Π² 19:36
51
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ
$ git reset --hard HEAD^
(ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»ΠΈΡ Π²ΡΠ΅ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ; ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Ρ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡΡ).
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ to-be-deleted commit, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ git revert
$ git revert HEAD
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Jakub NarΔbski Β Β
27 Π°Π²Π³ΡΡΡΠ° 2009 Π² 10:47
35
git reset --hard commitId
git push <origin> <branch> --force
PS: CommitId ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡΡΡ
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
sun34 Β Β
16 ΠΎΠΊΡΡΠ±ΡΡ 2014 Π² 09:51
31
ΠΠ°ΡΠΈΠ»ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΡΡΠΎΡΠΈΡ
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π½ΠΎ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ n ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ:
git rebase -i HEAD~<number of commits to go back>
, ΡΠ°ΠΊ ΡΡΠΎ git rebase -i HEAD~5
, Π΅ΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
ΠΠ°ΡΠ΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ»ΠΎΠ²ΠΎ pick
Π½Π° drop
ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ. Π‘ΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΊΡΠΎΠΉΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. ΠΡΠ°Π»Ρ!
ΠΠ΄Π΄ΠΈΡΠΈΠ²Π½ΠΎ ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΡΡΠΎΡΠΈΡ
ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ git revert <commit hash>
. Revert ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
IliasT Β Β
15 ΠΈΡΠ½Ρ 2017 Π² 23:01
29
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»Ρ Π² Π½Π΅ΠΉ, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
git reset HEAD~1
ΠΡΠΎ Π²Π΅ΡΠ½Π΅Ρ Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π² Π΅Π³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ git add ΡΠ°Π·ΠΌΠ΅ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ. ΠΠ°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. HEAD~1 ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π½ΠΈΠΆΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π²Π΅ΡΠ²ΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ N ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅:
git reset HEAD~N
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ ΠΈ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ±ΡΠΎΡ «hard».
git reset --hard HEAD~1
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ N ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°:
git reset --hard HEAD~N
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Anurag-Sharma Β Β
31 ΠΌΠ°Ρ 2014 Π² 07:19
27
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ 2 & 4 ΠΈΠ· Π ΠΠΠ.
commit 0 : b3d92c5
commit 1 : 2c6a45b
commit 2 : <any_hash>
commit 3 : 77b9b82
commit 4 : <any_hash>
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° Π½Π°Π΄ Π ΠΠΠ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ --hard
ΠΈ -f
.
git checkout b3d92c5
ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°.git checkout -b repair
ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.git cherry-pick 77b9b82
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ commit 3.git cherry-pick 2c6a45b
Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ commit 1.git checkout master
ΠΌΠ°ΡΡΠ΅Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ Π·Π°ΠΊΠ°Π·Π°.git reset --hard b3d92c5
ΡΠ±ΡΠΎΡΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠ°.git merge repair
ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠ²Ρ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ.git push -f origin master
Π½Π°ΠΆΠΌΠΈΡΠ΅ master Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π ΠΠΠ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
tk_ Β Β
05 ΡΠ΅Π½ΡΡΠ±ΡΡ 2017 Π² 07:19
18
git rebase -i HEAD~2
ΠΠ΄Π΅ΡΡ ‘2’ — ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°ΡΡ.
'git rebase -i HEAD`
Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
Π’ΠΎΠ³Π΄Π° Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell
d, drop = remove commit
ΠΡΠΈ ΡΡΡΠΎΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Ρ; ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ·.
ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π°.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π²ΡΠ΅, ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΡΠ²Π°Π½ΠΎ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Ρ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΡ «d» ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΠ² ΡΡΡΠΎΠΊΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΡΡ Π²Π°ΡΠ° ΡΠΈΠΊΡΠ°ΡΠΈΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Siva Praveen Β Β
18 ΠΌΠ°Ρ 2016 Π² 23:39
14
Π§ΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
git reset --hard HEAD~1
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
git push origin HEAD --force
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
thestar Β Β
28 Π°Π²Π³ΡΡΡΠ° 2014 Π² 16:06
9
ΠΠΎΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ:
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π΅ΡΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ±ΡΠΎΡΡΡΠ΅ ΡΠ²ΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ°Π±ΠΎΡΡΡ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠΈΠΊΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ (Π²ΡΠ΅, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ). ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² SourceTree Ρ ΡΠ΅Π»ΠΊΠ½ΡΠ» ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ Π²ΡΠ±ΡΠ°Π» «Reset BRANCHNAME to this commit». Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ°-ΡΡΠΎ:
git reset --hard COMMIT_ID
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ»ΠΈ ΡΠ²ΠΎΡ Π²Π΅ΡΠ²Ρ ΠΈΠ· ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, Ρ Π²Π°Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎΠ±Ρ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡΡ ΠΎ ΠΏΠΎΡΠ΅ΡΠ΅. ΠΠΎ ΡΡΠΎ ΠΏΠΎΡΠ΅ΡΡΠ»ΠΎ Π±Ρ ΠΈΡ , Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
git -c diff.mnemonicprefix=false -c core.quotepath=false \
push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME
ΠΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π² Π²Π°ΡΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠΉ Π²Π΅ΡΠ²ΠΈ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
CommaToast Β Β
13 ΠΌΠ°Ρ 2013 Π² 17:20
9
ΠΡΠΈΠ±ΠΊΠ°:
I git rebase -i --root
‘ ed my branch, Π½Π΅Π²Π΅ΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Ρ ΠΌΠΎΠ³ Π±Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΉΡΡ ΠΎΡ master (ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ GitHub Π΄Π»Ρ Windows ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ-ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ master, ΡΠΊΡΡΠ²Π°ΡΡΠ΅Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ).
Π― ΠΎΡΡΠ°ΡΡΠΈΠ» Π±ΠΎΡΠΎΠ΄Ρ Π² ΠΡΠ΅ΠΌΠ½ΠΈΠ΅Π²ΠΎΠΉ Π΄ΠΎΠ»ΠΈΠ½Π΅, ΠΏΠΎΠΊΠ° 900 + ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈΡΡ Π² Sublime. ΠΡΠΉΠ΄Ρ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ — Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ Π·Π°ΡΡΠ΄ΠΈΠ» ΡΠ²ΠΎΡ Π±Π°ΡΠ°ΡΠ΅Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ» Π±ΡΠΈΡΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ 900+ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π½Π΅Π±ΡΠ΅ΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π±Π°Π·ΠΈΡΠΎΠ²Π°Π»ΠΈΡΡ-ΡΠ±ΡΠΎΡΠΈΠ² ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ Π΄ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π Π΅ΡΠΈΠ² ΠΏΠΎΠ±Π΅Π΄ΠΈΡΡ Git ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π°, Ρ ΡΠ΄Π°Π»ΠΈΠ» ΡΡΠΎΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π» Π΅Π³ΠΎ Ρ ΠΏΡΠ»ΡΡΠ° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΠ½ ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ ΠΊ ΠΌΠ°ΡΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ Ρ ΠΎΡΠ΅Π» ΡΠ΄Π°Π»ΠΈΡΡ,ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎΡΡ ΡΠ°ΠΊ.
ΠΡΡΠ΅ΡΠΏΠ°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ:
Π― Π½Π΅ Ρ
ΠΎΡΠ΅Π» git revert
-ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΎ Π±Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ, Π΄Π°Π²Π°Ρ Git ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ.
git reset --hard HEAD
Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π», ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ reflog
, ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ HEAD
Π±ΡΠ» ΠΊΠ»ΠΎΠ½ — Git ΠΏΠΎΠ±Π΅Π΄.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ SHA, Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° github.com — minor win.
ΠΠΎΠ΄ΡΠΌΠ°Π², ΡΡΠΎ git reset --hard <SHA>
ΡΡΠ°Π±ΠΎΡΠ°Π», Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠ²Ρ Π΄ΠΎ master ΠΈ 1… 2… ΠΏΡΡ! ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½-Git ΠΏΠΎΠ±Π΅Π΄.
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΠΌΠ°ΡΡΠ΅ΡΡ, Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ git rebase -i <SHA>
, Π° Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠΎΠΊΡ… ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π±Π΅Π·ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ½ΠΎ. «ΠΡΠ»ΠΈ Π²Ρ ΡΠ΄Π°Π»ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π°«. Ah…glossed Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΡΠΎΠ»Π»ΠΈΡ n00b Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ
ΠΊ Π²ΡΠΏΡΡΠΊΡ 2.8.3 .
Π Π΅ΡΠ΅Π½ΠΈΠ΅:
git rebase -i <SHA>
ΠΏΠΎΡΠΎΠΌ d, drop = remove commit
.
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Ρ Π²ΡΠ΅Ρ Π°Π» Π² Π΄ΡΡΠ³ΡΡ Π²Π΅ΡΠΊΡ, ΠΈ Π²ΡΠ°Π»Ρ — Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΊΡΡΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΡΡΠ² ΠΏΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ/Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ· ΠΠ°ΡΡΠ΅ΡΠ°.
when you're trying to learn a new programming language for the first time pic.twitter.com/1l8Gv2TQvn
— Zach Holman (@holman) March 5, 2016
ΠΠΎΠ±ΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π΄Π½Ρ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Leo Β Β
25 ΠΌΠ°Ρ 2016 Π² 20:33
8
ΠΡΠ΅ Π²ΡΡΠ΅ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±ΡΠ»ΠΈ Π΄ΠΎ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π½Π΅ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π½Π΅Π³ΠΎ, ΡΠΈΠΊΡΠ°ΡΠΈΡ «removed» ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ ΡΠ΄Π°Π»Π΅Π½Π°, ΠΎΠ½Π° ΠΏΡΠΎΡΡΠΎ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠΊΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π²Π΅ΡΠ²ΠΈ.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΡΡΠΎΡΠΎΠ²ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ . ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ±-ΡΠ΄Π°Π»ΠΈΡΡ Π΅Π³ΠΎ ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° ΠΈ ΡΠ΅ΡΠ»ΠΎΠ³Π°, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ git prune --expire -now
.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Angelo Borsotti Β Β
04 ΠΎΠΊΡΡΠ±ΡΡ 2012 Π² 07:19
7
ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΡΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ (Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π·Π°Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ) ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π² ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎΠ΅ Π ΠΠΠ, ΠΏΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
git commit --amend -m "New message here"
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΡΡΠ°ΠΏΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Ρ Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ (ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²Ρ ΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ) ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ ΡΡΠΎΡ ΠΊΠΎΠΌΠΌΠΈΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π΅Π΅ Π½Π°ΠΆΠ°Π»ΠΈ, Π²Ρ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π΅ΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΎΠΏΡΠΈΡ ‘—no-edit ‘Π²ΠΌΠ΅ΡΡΠΎ’ — m’, ΠΡΠ»ΠΈ Π²Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΊΡΠΎΡΠ°:
http://git-scm.com/docs/git-commit.html
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Pwnrar Β Β
26 ΠΌΠ°Ρ 2014 Π² 23:24
7
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°Ρ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ:
git revert GIT_COMMIT_HASH
Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠ΅Π΅, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΠ΅ΡΡ, Π° Π·Π°ΡΠ΅ΠΌ:
git push
ΠΠΎΠ³Π΄Π° Π²Ρ Π²ΡΠ΄Π°Π΅ΡΠ΅ git log
Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ «wrong» ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π°.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Paulo Fidalgo Β Β
07 ΡΠ½Π²Π°ΡΡ 2015 Π² 15:13
6
ΠΡΡΠΎΡΠ½ΠΈΠΊ: https://gist.github.com/sagarjethi/c07723b2f4fa74ad8bdf229166cf79d8
Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ
git push origin +aa61ab32^: master
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΡΠΎΠ³Π΄Π° ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π¨Π°Π³ΠΈ
Π‘Π½Π°ΡΠ°Π»Π° ΡΠ±ΡΠΎΡΡΡΠ΅ Π²Π΅ΡΠ²Ρ ΠΊ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
Π‘ΠΈΠ»Π°-ΠΏΠΎΠ΄ΡΠΎΠ»ΠΊΠ½ΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊ ΠΏΡΠ»ΡΡΡ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
git reset HEAD^ --hard git push origin -f
ΠΠ»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ±ΡΠΎΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅
git reset bb676878^ --hard
git push origin -f
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
sagar jethi Β Β
22 ΠΈΡΠ½Ρ 2018 Π² 13:40
5
ΠΡΠ»ΠΈ Π²Ρ ΡΠΆΠ΅ Π½Π°ΠΆΠ°Π»ΠΈ, ΡΠ½Π°ΡΠ°Π»Π° Π½Π°ΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π² HEAD ($GIT_COMMIT_HASH_HERE) , Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force
ΠΠ°ΡΠ΅ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ Π ΠΠΠ Π±ΡΠ»ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΎ, Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅:
git reset --hard origin/master
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Justin Β Β
30 ΡΠ½Π²Π°ΡΡ 2017 Π² 00:25
5
Π’ΠΎ, ΡΡΠΎ Ρ Π΄Π΅Π»Π°Ρ ΠΎΠ±ΡΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΠΎΠ²Π΅ΡΡΠ°Ρ ΠΈ ΡΠΎΠ»ΠΊΠ°Ρ (Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΎΠ»ΠΊΠ½ΡΠ» Π΅Π³ΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΡΡ ΡΡΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ):
git reset --hard HEAD~1
git push -f origin
Π½Π°Π΄Π΅ΡΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Chris Sim Β Β
14 ΠΈΡΠ½Ρ 2017 Π² 09:22
4
Π‘Π±ΡΠΎΡ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ
git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3
ΠΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΠ»ΡΠΎΠΊ ΠΊ Π½Π°ΡΠ°Π»Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ
git push -f origin
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Ashish Singh Β Β
29 ΠΌΠ°Ρ 2018 Π² 07:38
3
Π‘Π΄Π΅Π»Π°ΠΉΡΠ΅ ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΏΠ°ΠΏΠΊΠ΅ temp. Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠ±ΡΠΎΡΠ΅Π½Π° ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ.
git reset --hard HEAD
git clean -f
git pull
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ
git reset --soft HEAD^
git pull
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Lava Sangeetham Β Β
14 ΠΈΡΠ»Ρ 2016 Π² 11:25
2
Π― ΡΠΆΠ΅ Π΄Π°Π²ΠΈΠ» Π½Π° Π½Π΅Π³ΠΎ. ΠΡΠΆΠ½ΠΎ Π²Π΅ΡΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ.
ΠΠ΅ΡΠ΅ΠΏΡΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°ΡΠΈΠΉ,
Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΎΡ ΠΠΆΠ°ΡΡΠΈΠ½Π° ΡΠ΅ΡΠ΅Π· git ΠΡΡΠ° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Π½Ρ:
git reset --hard $GIT_COMMIT_HASH_HERE
git push origin HEAD --force
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
Serg Burlaka Β Β
08 ΡΠ΅Π²ΡΠ°Π»Ρ 2019 Π² 21:29
1
git ΡΠ±ΡΠΎΡ —ΠΆΠ΅ΡΡΠΊΠΈΠΉ
git Π½Π°ΡΠ°Π»ΠΎ ΡΠΎΠ»ΡΠΊΠ° HEAD —ΡΠΈΠ»Π°
ΠΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠ΄Π°Π»ΠΈΡΠ΅ ΡΠ΅Π³(Ρ). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π½Π°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
BillChan Β Β
24 ΠΈΡΠ»Ρ 2015 Π² 14:45
1
ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Ρ Ρ
ΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ revert» test change 2 » commit(SHA1 ID: 015b5220c50e3dfbb1063f23789d92ae1d3481a2 (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ SHA1 ID Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ gitk
Π² git bash)).
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΌΠΎΠ³Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ(Π²ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅. Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΆΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ):
git reset --hard 515b5220c50e3dfbb1063f23789d92ae1d3481a2
//it ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°Ρ ΠΊ ΡΡΠΎΠΌΡ ΠΊΠΎΠΌΠΌΠΈΡΡ (SHA1 ID ΠΈΠ· test change 4 commit is 515b5220c50e3dfbb1063f23789d92ae1d3481a2 )git reset --hard HEAD~1
// ΡΡΠΎ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ.git reset --hard HEAD^
// ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΈΠ· git
ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ:
ΠΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ
ankit Β Β
03 ΠΈΡΠ»Ρ 2018 Π² 06:51
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ:
ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ (Π½Π°Π²ΡΠ΅Π³Π΄Π°) ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ git
Π― Ρ ΠΎΡΠ΅Π» Π±Ρ Π½Π°Π²ΡΠ΅Π³Π΄Π° ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git. Π― Π²ΠΈΠ΄Π΅Π» ΡΡΡ ΡΠ΅ΠΌΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: git reset —hard HEAD~4 git push origin HEAD —force ΠΡΠΎ…
ΠΠ°ΠΊ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² git
Π― ΡΠΎΠ²Π΅ΡΡΠΈΠ» Π΄Π²Π°ΠΆΠ΄Ρ ΠΈ Π΅ΡΠ΅ Π½Π΅ Π½Π°ΠΆΠ°Π». ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ, Ρ ΠΎΡΡ Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π». Π― Π²ΡΠ΅Π³Π΄Π° Π΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΡΠΎ ΡΠ±ΡΠΎΡΠΈΡ Π΅Π³ΠΎ: git checkout master Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΡΠ³Π»ΠΈΠ» ΠΈ Π½Π°ΡΠ΅Π» ΡΡΠΎΡ ΠΏΠΎΡΡ:…
Π£Π΄Π°Π»ΠΈΡΡ ΡΠ°ΠΌΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ git
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΡΠ±Π»ΠΈΠΊΠ°Ρ : ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ (ΡΡΠ°ΡΡΠ΅) git ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ git ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ Π½ΠΎΡΠ½ΡΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ². ΠΠ½Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ (php + mysqldump + Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²)…
ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΠΆΠ΅ Π½Π°ΠΆΠ°ΡΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π² git?
Π Π°Π±ΠΎΡΠ°Ρ Π½Π°Π΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΎΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ°Π±ΠΎΡΡ. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ° Π²Π΅Π΄Π΅ΡΡΡ Π² Π²Π΅ΡΠΊΠ΅ integration , ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° ΠΎΡΠ΄Π΅Π»Π΅Π½Π° ΠΎΡ…
Π£Π΄Π°Π»ΠΈΡΡ ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π² git
Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡ Ρ Mercurial Π½Π° Git. Mercurial Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΡΡΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ ΡΠ΅Π³ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ» Ρ ΠΏΡΡΡΡΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠ°ΠΌΠΈ Π² Git, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ…
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ x ΠΈΠ· Π²Π΅ΡΠΊΠΈ?
ΠΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΡΠΎΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ (ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ) 159 ΠΈΠ· Π²Π΅ΡΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Git. Π― ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π² Π½Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ 159, Π΅ΡΠ»ΠΈ ΡΡΠΎ…
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠ²ΠΈΠ΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ git log ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΡΠΊΠΈ? usage: git log [<options>] [<since>..<until>]…
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Π² git?
Π― ΠΈΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π²Π΅ΡΠΊΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π²Π΅ΡΠ²ΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°ΠΆΠΈΠΌΠ°Ρ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎ Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ Π½Π΅ Ρ ΠΎΡΡ Π½Π°ΠΆΠΈΠΌΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ±…
Git: ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ° pull
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅, Π³Π΄Π΅ Ρ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠΌΠΌΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ Ρ ΠΎΡΡ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ PR ΠΈ Π½Π°ΡΠ°ΡΡ Ρ Π½ΡΠ»Ρ. ΠΠ΄Π΅ Ρ ΠΌΠΎΠ³Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ½ΠΎΠ²Π°? Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» git rebase , Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ…
git-ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² ΠΈΠ· Π²Π΅ΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² Π²Π΅ΡΠΊΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠ°ΠΊ, Π² Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ git Π±ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ (Π½Π΅ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ ΡΠ΅ΠΉΡΠ°Ρ) Π² Π½Π°ΡΡ Π²Π΅ΡΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΠ»Π° Π±ΡΡΡ Π² Π²Π΅ΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ΅ΡΠ²Ρ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ,…
ΠΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡ Π²ΡΠ΅ Π²Π°ΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ΅ΡΠ²ΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ rebase , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², Π΄ΡΡΠ³ΠΎΠΉ — cherry-pick , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠ΄Π°Π»ΡΡΡ Π½Π΅ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ.
ΠΡΠΈΠΌΠ΅Ρ ΠΆΡΡΠ½Π°Π»Π° git
ΠΠΎΠΌΠ΅Ρ | Ρ ΡΡ | Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ | ΠΠ²ΡΠΎΡ |
---|---|---|---|
1 | 2c6a45b | (HEAD) ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° | Π’ΠΎΠΌ |
2 | ae45fab | ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ | ΠΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ 1 |
3 | 77b9b82 | Π£Π»ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ | ΠΠΎΠ΄ΡΡΠ΄ΡΠΈΠΊ 2 |
4 | 3c9093c | ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½Π°Ρ Π²Π΅ΡΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΠΌΠ°ΡΡΠ΅Ρ | Π’ΠΎΠΌ |
5 | b3d92c5 | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Event CMS | ΠΠΎΠ» |
6 | 7feddbb | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² CMS | Π’ΠΎΠΌ |
7 | a809379 | ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Git | Π’ΠΎΠΌ |
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Rebase
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΆΡΡΠ½Π°Π» git, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ; 2 ΠΈ 3 (ae45fab ΠΈ 77b9b82).ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ rebase.
git rebase --onto <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> ~ <Π½ΠΎΠΌΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ> <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> ~ <ΠΏΠ΅ΡΠ²Π°Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌΠ°Ρ ΡΠΈΠΊΡΠ°ΡΠΈΡ> <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ 2 ΠΈ 3 Π²ΡΡΠ΅
git rebase --onto repair ~ 3 ΡΠ΅ΠΌΠΎΠ½ΡΠ° ~ 1 ΡΠ΅ΠΌΠΎΠ½Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Cherry Pick
Π¨Π°Π³ 1: ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ git log
Π¨Π°Π³ 2: Checkout, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ git checkout
Π¨Π°Π³ 3: Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ git checkout -b <Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΠΊΠ°>
Π¨Π°Π³ 4: Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ git cherry-pick
Π¨Π°Π³ 5: Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΠ΅ ΡΠ°Π³ 4 Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ.
Π¨Π°Π³ 6: ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠΈΡΡ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² Π²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ Π² ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ²Π°ΠΆΠ΄Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, Π²ΡΠ΅ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ: git status
Π¨Π°Π³ 7: ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ»ΠΎΠΌΠ°Π½Π½ΡΡ Π²Π΅ΡΠΊΡ git checkout <ΡΠ»ΠΎΠΌΠ°Π½Π½Π°Ρ Π²Π΅ΡΠΊΠ°>
Π¨Π°Π³ 8: Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ±ΡΠΎΡ ΡΠ»ΠΎΠΌΠ°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Π΄ΠΎ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ git reset --hard
Π¨Π°Π³ 9: Π‘Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ Ρ ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ git merge <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
Π¨Π°Π³ 10: ΠΠ΅ΡΠ½ΡΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ ΡΠΎΡΠΊΡ. ΠΠΠΠΠΠΠΠ: ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ΅Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΠΏΠΎ! git push --force origin <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ>
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠ²ΠΈ, Π·Π°ΠΌΠ΅Π½ΠΈΠ² Π¨Π°Π³ 2 ΠΈ 3 Π½Π° Π¨Π°Π³ 8 , Π° Π·Π°ΡΠ΅ΠΌ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π¨Π°Π³ΠΈ 7 ΠΈ 9.
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΎΠΏΡΡΡΠΈΠΌ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ 2 ΠΈ 4 ΠΈΠ· ΡΠ΅ΠΏΠΎ.
-
git checkout b3d92c5
ΠΠ·Π²Π»Π΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ. -
git checkout -b repair
Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ. -
git cherry-pick 77b9b82
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ 3. -
git cherry-pick 2c6a45b
ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΡ 1. -
git checkout master
checkout master. -
git reset --hard b3d92c5
Π‘Π±ΡΠΎΡΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠΈΠΊΡΠ°ΡΠΈΠΈ. -
git merge repair
Π‘Π»ΠΈΡΡ Π½Π°ΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ. -
git push --hard origin master
ΠΡΠΏΡΠ°Π²ΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΡΠ΅ΠΏΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Git rebase ΠΈ cherrypick — ΠΎΠΏΠ°ΡΠ½ΡΠ΅, Π½ΠΎ ΠΌΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΌ, ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ.ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΠΎΠ±Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅Π±Π»Π°Π³ΠΎΠΏΡΠΈΡΡΠ½ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ / Π²Π΅ΡΠΊΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π±ΡΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΡΠΌ ΠΈ ΡΠ΄Π°ΡΠΈ!
.
git — ΠΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈΠ· GitHub?
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
.
Π‘ΡΡΠ°Π½ΠΈΡΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° Β· GitHub Pages
Π‘ΡΡΠ°Π½ΠΈΡΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π° Β· GitHub Pages
Π€Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
Π‘Π°ΠΉΡ, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠΎ ΡΡΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ, Π½Π΅
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΠ».
ΠΡΠ»ΠΈ ΡΡΠΎ Π²Π°Ρ ΡΠ°ΠΉΡ, ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΠ΅Π³ΠΈΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ URL-Π°Π΄ΡΠ΅ΡΡ.
ΠΠ»Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΡ
URL (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, http://example.com/
) Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ
index.html
ΡΠ°ΠΉΠ».
ΠΡΠΎΡΡΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ GitHub Pages .
.
git — ΠΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡΡ ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠ° Π½Π° ΠΏΠ΅ΡΠ΅Π½ΠΎΡ
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
.