Π Π°Π·Π½ΠΎΠ΅

Git ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚: Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Git: Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

Если я Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ научился Π·Π° 15 с лишним Π»Π΅Ρ‚ программирования, Ρ‚Π°ΠΊ это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ошибки Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ часто, ΠΈ я ΠΈΡ… ΠΌΠ½ΠΎΠ³ΠΎ дСлаю. Π­Ρ‚ΠΎ Π² Ρ€Π°Π²Π½ΠΎΠΉ стСпСни относится ΠΈ ΠΊ инструмСнтам контроля вСрсий. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, случайно Π»ΠΈ Π²Ρ‹ зафиксировали измСнСния ΠΈΠ»ΠΈ просто поняли, Ρ‡Ρ‚ΠΎ ваш ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ зафиксированный ΠΊΠΎΠ΄ — это Π½Π΅ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ, часто Π²Π°ΠΌ потрСбуСтся ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Git.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ нСсколько способов ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ваши ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, Π² зависимости ΠΎΡ‚ вашСго Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования. Π­Ρ‚ΠΎ слоТная Ρ‚Π΅ΠΌΠ° (которая относится ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ Git Π² Ρ†Π΅Π»ΠΎΠΌ), поэтому ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ слСдуСтС инструкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ вашим потрСбностям.

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Ρ‚Π°ΠΊΠΎΠΌ ΠΊΠ°ΠΊ GitHub, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎ сущСству ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ reset.

Π₯отя это эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ опасноС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ пСрСписываСтС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ оставляСтС Β«ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅Β» ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π±Π΅Π· ссылок ΠΈΠ»ΠΈ Β«ΠΎΡΠΈΡ€ΠΎΡ‚Π΅Π²ΡˆΠΈΠΌΠΈΒ». ЕдинствСнный способ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти нСсвязанныС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ — это git reflog.

Команда reset ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Π΄Π²Π° ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ опишСм здСсь:

$ git reset --hard 

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠΏΡ†ΠΈΡŽ —hard, всС возвращаСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ссылки Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ индСкс ΠΈ ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации, Π½ΠΎ ΠΈ потСряСтС всС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ измСнСния Π² процСссС. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ измСнСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ stash ΠΈ stash pop:

$ git stash
$ git reset --hard 
$ git stash pop

Команда stash сохраняСт ваши Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ измСнСния (Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΈΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Π΅Ρ€Π΅Π²Π΅), Π° Π·Π°Ρ‚Π΅ΠΌ stash pop Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π”Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, являСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ —soft. Π­Ρ‚Π° опция Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ git reset —hard , Π½ΠΎ влияСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π° Π½Π΅ Π½Π° ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ индСкс.

$ git reset --soft 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Допустим, Π²Ρ‹ зафиксировали свой ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. На этом этапС Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ git reset, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ пСрСписываСтС ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

ВмСсто этого рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ revert. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, отмСняя измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ внСсСны Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, создавая Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ фактичСски Π½Π΅ удаляя ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π­Ρ‚ΠΎ идСально для ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Ρ€Π΅Π°Π»ΡŒΠ½Π°Ρ история рСпозитория сохраняСтся. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

$ git revert 

Допустим, Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π΅ΡΡ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТаниСм

This is my sample text  

И Π²Ρ‹ измСняСтС Π΅Π³ΠΎ Π½Π°:

This is my awesome sample text  

Π’Π°ΡˆΠ° история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

$ git log --pretty=oneline
676ec97a9cb2cebbb5c77904bbc61ced05b86f52 Added 'awesome' to text  
735c5b43bf4b5b7107a9cc3f6614a3890e2889f6 Initial commit  

Если ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ большС Π½Π΅Π½ΡƒΠΆΠ½ΠΎ слово Β«awesomeΒ» Π² нашСм тСкстС, Π½ΠΎ ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ 676ec, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ revert, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅:

$ git revert 676ec
[master f68e546] Revert "Added 'awesome' to text"
1 file changed, 1 insertion(+), 1 deletion(-)

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ввСсти сообщСниС ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΌΡ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² нашСй истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎ фактичСски сущСствуСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚:

$ git log --pretty=oneline
f68e546ac2ae240f22b2676b5aec499aab27f1ca Revert "Added 'awesome' to text"  
676ec97a9cb2cebbb5c77904bbc61ced05b86f52 Added 'awesome' to text  
735c5b43bf4b5b7107a9cc3f6614a3890e2889f6 Initial commit  

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠšΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½, ΠΈ история Π½Π΅ Π±Ρ‹Π»Π° потСряна.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ нСсколько Π΄Ρ€ΡƒΠ³ΠΈΡ… способов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ 2 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git revert HEAD~2

Или, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ нСпостоянных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡ… ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ:

git revert 676ec 735c5

Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚

Β«ΠžΡ‚ΠΌΠ΅Π½Π° фиксации» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π² своСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎ Π±Π΅Π· внСсСния ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ. Π’ этом случаС Π²Ρ‹, вСроятно, просто Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ мастСру ΠΈΠ»ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅:

$ git checkout 

Π­Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ ваш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° содСрТимоС этого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° мСстополоТСниС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ HEAD, Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ являСтся Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΌ. Π›ΡŽΠ±Ρ‹Π΅ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ здСсь, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ зафиксированы Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΈΠ»ΠΈ сохранСны для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ использования.

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ самыС послСдниС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git? — git

Π― случайно зафиксировал Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Git, Π½ΠΎ я Π΅Ρ‰Π΅ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Π½Π° сСрвСр.

Как я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· локального рСпозитория?

git

version-control

git-commit

undo

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ


Hamza Yerlikaya Β  Β 

29 мая 2009 в 18:09

25 ΠžΡ‚Π²Π΅Ρ‚ΠΎΠ²



21224

ΠžΡ‚ΠΌΠ΅Π½Π° фиксации ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€

$ git commit -m "Something terribly misguided"             # (1)
$ git reset HEAD~                                          # (2)
<< edit files as necessary >>                              # (3)
$ git add ...                                              # (4)
$ git commit -c ORIG_HEAD                                  # (5)
  1. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ.
  2. Π­Ρ‚ΠΎ оставляСт вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (состояниС Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° дискС) Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½Ρ‹ΠΌ , Π½ΠΎ отмСняСт Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈ оставляСт измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ зафиксировали, нСстагнированными (поэтому ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ «Changes not staged for commit» Π² git status, поэтому Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… снова ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ большС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС фиксации 1, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто этого git reset --soft HEAD~ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° git reset HEAD~ (Π³Π΄Π΅ HEAD~ -Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ HEAD~1), Π½ΠΎ оставляСт ваши ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния поэтапными.
  3. ВнСситС исправлСния Π² Ρ„Π°ΠΉΠ»Ρ‹ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.
  4. git add всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² свой Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.
  5. ЗафиксируйтС измСнСния, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ староС сообщСниС фиксации. reset скопировал ΡΡ‚Π°Ρ€ΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ Π² .git/ORIG_HEAD ; commit с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ -c ORIG_HEAD ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ содСрТит сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ· старой фиксации ΠΈ позволяСт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Если Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -C .

Однако ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² индСкс, использованиС commit --amend Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ ΠΈΡ… ΠΊ вашСй ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ фиксации.

Если ΠΊΠΎΠ΄ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° ваш сСрвСр ΠΈ Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ истории (ΠΏΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅), Ρ‚ΠΎ:

git push origin master --force

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° этот ΠΎΡ‚Π²Π΅Ρ‚:

Как ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ HEAD ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ мСсто? (ΠžΡ‚Ρ€Π΅Π·Π°Π½Π½Π°Ρ Π³ΠΎΠ»ΠΎΠ²Π°) & ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ git reflog , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SHA-1, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ нашли Ρ‚ΠΎΡ‡ΠΊΡƒ, Π΄ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅.


1 ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ ,Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Ссли Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² своСм сообщСнии ΠΎ фиксации. Π‘ΠΎΠ»Π΅Π΅ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ — это git reset (Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ сдСлали с Ρ‚Π΅Ρ… ΠΏΠΎΡ€), Π° Π·Π°Ρ‚Π΅ΠΌ git commit --amend , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ сообщСний ΠΎ фиксации ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ послСдним сообщСниСм ΠΎ фиксации.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Esko Luontola Β  Β 

29 мая 2009 в 18:13



10264

ΠžΡ‚ΠΌΠ΅Π½Π° фиксации Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡƒΠ³Π°Π΅Ρ‚, Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Но Π½Π° самом Π΄Π΅Π»Π΅ это ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ, Ссли Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅.

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ это, Π³Π΄Π΅ C-ваш HEAD ΠΈ (F) — состояниС Π²Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².

   (F)
A-B-C
    ↑
  master

Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΡΠ΄Π΅Ρ€Π½ΡƒΡŽ Π±ΠΎΠΌΠ±Ρƒ Π½Π° commit C ΠΈ большС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ . Π’Ρ‹ сдСлаСшь это:

git reset --hard HEAD~1

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получаСтся:

 (F)
A-B
  ↑
master

Π’Π΅ΠΏΠ΅Ρ€ΡŒ B — это HEAD. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ использовали --hard, ваши Ρ„Π°ΠΉΠ»Ρ‹ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΈΡ… состояниС ΠΏΡ€ΠΈ фиксации B.

Ах, Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ commit C-это Π½Π΅ катастрофа, Π° просто Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ Ρ‚Π°ΠΊ. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ сохранитС измСнСния для нСбольшого рСдактирования, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Начиная снова ΠΎΡ‚ΡΡŽΠ΄Π°, с C Π² качСствС вашСго HEAD:

   (F)
A-B-C
    ↑
  master

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это, оставив --hard :

git reset HEAD~1

Π’ этом случаС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΎΠ²:

   (F)
A-B-C
  ↑
master

Π’ ΠΎΠ±ΠΎΠΈΡ… случаях HEAD — это просто ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Когда Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ git reset HEAD~1, Π²Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Git, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ HEAD Π½Π°Π·Π°Π΄ Π½Π° ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. Но (Ссли Π²Ρ‹ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ --hard ) Π²Ρ‹ оставляСтС свои Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ git status ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ зарСгистрировали Π² C. Π’Ρ‹ ΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ потСряли!

Для самого Π»Π΅Π³ΠΊΠΎΠ³ΠΎ прикосновСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ индСкс :

git reset --soft HEAD~1

Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ оставляСт ваши Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠΎΠΊΠΎΠ΅, Π½ΠΎ Π΄Π°ΠΆΠ΅ оставляСт ваш индСкс Π² ΠΏΠΎΠΊΠΎΠ΅. Когда Π²Ρ‹ сдСлаСтС git status, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² ИндСксС находятся Ρ‚Π΅ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅. На самом Π΄Π΅Π»Π΅, сразу послС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git commit , ΠΈ Π²Ρ‹ Π±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π».

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²Π΅Ρ‰ΡŒ: ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ , ΠΊΠ°ΠΊ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½ΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π²Π°ΠΌ всС-Ρ‚Π°ΠΊΠΈ Π½ΡƒΠΆΠ΅Π½ ? НС ΠΏΠΎΠ²Π΅Π·Π»ΠΎ Ρ‚Π΅Π±Π΅, Π²Π΅Ρ€Π½ΠΎ?

НСт, всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ способ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ git reflog , ΠΈ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список (частичных) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² фиксации (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ…ΡΡˆΠ΅ΠΉ), Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π»ΠΈΡΡŒ. НайдитС ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΠ»ΠΈ, ΠΈ сдСлайтС это:

git checkout -b someNewBranchName shaYouDestroyed

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ воскрСсили это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° самом Π΄Π΅Π»Π΅ Π½Π΅ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ°ΡŽΡ‚ΡΡ Π² Git Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 90 Π΄Π½Π΅ΠΉ, поэтому Π²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΈ спасти Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚ ΠΊΠΎΠ³ΠΎ Π²Ρ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΈΡΡŒ ΠΈΠ·Π±Π°Π²Π»ΡΡ‚ΡŒΡΡ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Ryan Lundy Β  Β 

28 июля 2011 в 22:22



1954

Π­Ρ‚ΠΎ заняло Ρƒ мСня Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚…

БущСствуСт Π΄Π²Π° способа «undo» вашСй послСднСй фиксации, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сдСлали Π»ΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ свою Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ общСдоступной (пСрСнСсли Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ):

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Допустим, я ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ…ΠΎΡ‡Ρƒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ эту Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

git log
    commit 101: bad commit    # latest commit, this would be called 'HEAD'
    commit 100: good commit   # second to last commit, this is the one we want

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ reset ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π΄ΠΎ HEAD :

git reset --soft HEAD^     # use --soft if you want to keep your changes
git reset --hard HEAD^     # use --hard if you don't care about keeping the changes you made

Π’Π΅ΠΏΠ΅Ρ€ΡŒ git log ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ наш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½.

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Если Π²Ρ‹ ΡƒΠΆΠ΅ сдСлали свои ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ общСдоступными, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ «revert» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных Π² ваш ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ HEAD).

git revert HEAD

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваши измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ фиксации:

git commit -m 'restoring the file I removed by accident'
git log
    commit 102: restoring the file I removed by accident
    commit 101: removing a file we don't need
    commit 100: adding a file that we need

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Git основы-ΠΎΡ‚ΠΌΠ΅Π½Π° Π²Π΅Ρ‰Π΅ΠΉ

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Andrew Β  Β 

16 июня 2011 в 17:27



1679

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ / ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅:

git rm classdir
git add sourcedir

Π—Π°Ρ‚Π΅ΠΌ внСситС измСнСния Π² ΠΊΠΎΠΌΠΌΠΈΡ‚:

git commit --amend

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ, ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Π°Ρ фиксация Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ состояниС индСкса — Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄Π΅Π»Π°Π»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ Π½Π°ΠΆΠ°Π»ΠΈ. Если Π²Ρ‹ Π½Π°ΠΆΠ°Π»ΠΈ, Ρ‚ΠΎ Π²Π°ΠΌ просто придСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ исправлСниС Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


bdonlan Β  Β 

29 мая 2009 в 18:16



947

git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"

ΠΈΠ»ΠΈ

git reset --hard HEAD~1

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: привСдСнная Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° навсСгда ΡƒΠ΄Π°Π»ΠΈΡ‚ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… .java (ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

hard resetHEAD-1 установит Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию Π² состояниС фиксации Π΄ΠΎ вашСго Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ фиксации.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Lennart Koopmann Β  Β 

29 мая 2009 в 18:13



721

ИзмСнСниС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² индСксС:

git rm --cached *.class
git add *.java

Π—Π°Ρ‚Π΅ΠΌ, Ссли это частная Π²Π΅Ρ‚Π²ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ:

git commit --amend

Или, Ссли это общая Π²Π΅Ρ‚Π²ΡŒ, сдСлайтС Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ:

git commit -m 'Replace .class files with .java files'

( Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π±Π°Π·Ρƒ )


ProTipβ„’: Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ *.class ΠΊ gitignore , Ρ‡Ρ‚ΠΎΠ±Ρ‹ это Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ снова.


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

ИзмСнСниС фиксации являСтся ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ являСтся reset .

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ git Π½Π° Π»ΡŽΠ±ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

git reset @~N

Π“Π΄Π΅ N — количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π΄ΠΎ HEAD, Π° @~ сбрасываСтся Π΄ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git reset @~
git add *.java
git commit -m "Add .java files"

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ git help reset, Π² частности Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π½Π° --soft --mixed ΠΈ --hard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π΄Π΅Π»Π°Π΅Ρ‚.

Reflog

Если Π²Ρ‹ ошиблись, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅Ρ„Π»ΠΎΠ³ для поиска ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²:

$ git reset @~
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~
2c52489 HEAD@{1}: commit: added some .class files
$ git reset 2c52489
... and you're back where you started

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Zaz Β  Β 

31 июля 2010 в 09:39



607

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git revert <commit-id>

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ID, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git log

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Jaco Pretorius Β  Β 

25 мая 2012 в 16:04



488

Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, всС, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π²Ρ‹ сдСлали Π² фиксации, ΠΈ Ссли Π²Ρ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΠΎΠΈΡ‚Π΅ΡΡŒ ΠΎΠ± этом, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

git reset --hard HEAD^1

(Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всю Π²Π°ΡˆΡƒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΈ ваши измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ потСряны ΠΈΠ· вашСго локального Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°). Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти измСнСния Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ послС git add), Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

git reset --soft HEAD^1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваши зафиксированныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ содСрТимоС, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

git reset HEAD

Π’Π΅ΠΏΠ΅Ρ€ΡŒ зафиксированныС Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈΠ· поэтапной области Π² Π½Π΅ΡΡ‚Π°Ρ†ΠΈΠΎΠ½Π°Ρ€Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, поэтому, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ Π½ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ, Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΉΡ‚ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ/Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Π‘ΠΎΠ»ΡŒΡˆΠ΅

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Madhan Ayyasamy Β  Β 

31 января 2013 Π² 07:06



462

Если Ρƒ вас установлСно Git Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git undo , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ. git undo 3 ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ послСдниС 3 ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


nickf Β  Β 

13 дСкабря 2011 Π² 10:18



430

Π― Ρ…ΠΎΡ‚Π΅Π» ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС 5 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² нашСм ΠΎΠ±Ρ‰Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π― посмотрСл Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ я Ρ…ΠΎΡ‚Π΅Π» ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ. Π—Π°Ρ‚Π΅ΠΌ я Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅.

prompt> git reset --hard 5a7404742c85
HEAD is now at 5a74047 Added one more page to catalogue
prompt> git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
remote: bb/acl: neoneye is allowed. accepted payload.
To [email protected]:thecompany/prometheus.git
 + 09a6480...5a74047 master -> master (forced update)
prompt>

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


neoneye Β  Β 

06 апрСля 2012 Π² 13:58



410

Π― ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git rebase -i для этой Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ появляСтся Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ список, Π³Π΄Π΅ я ΠΌΠΎΠ³Ρƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ прямолинСйно, ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ здСсь, Π½ΠΎ это просто каТСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ .

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅, сколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ (Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ послСдниС Ρ‚Ρ€ΠΈ)

git rebase -i HEAD~3

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½Ρ‹ΠΉ список

pick aa28ba7 Sanity check for RtmpSrv port
pick c26c541 RtmpSrv version option
pick 58d6909 Better URL decoding support

Π—Π°Ρ‚Π΅ΠΌ Git ΡƒΠ΄Π°Π»ΠΈΡ‚ фиксации для любой удаляСмой строки.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Steven Penny Β  Β 

25 октября 2012 Π² 03:41



395

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git-gui (ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ) для выполнСния git commit --amend . Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GUI Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· фиксации. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ сообщСниС фиксации.

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ свою Π²Π΅Ρ‚Π²ΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ располоТСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ gitk ΠΈΠ»ΠΈ git rebase ). Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ измСнСния ΠΈΠ· сохранСнной ΠΊΠΎΠΏΠΈΠΈ. ПослС сборки мусора Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ фиксация Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ происходила. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС это Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset HEAD~1 .

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: нСостороТноС использованиС git reset -это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ привСсти Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию Π² Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠ΅ состояниС. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ Git ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ этого, Ссли ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚.

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ вишни (git-revert), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния.

Если Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ пСрСнСсли Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния Π² свою Π²Π΅Ρ‚Π²ΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это…

git revert --no-edit HEAD

Π—Π°Ρ‚Π΅ΠΌ пСрСмСститС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ фиксации ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΎΠ±Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ .


Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: исправлСниС частной Π²Π΅Ρ‚Π²ΠΈ Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ опасно — ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ локальная копия Ρ„ΠΈΠ»ΠΈΠ°Π»Π° для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования.

Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ это, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² этой Π²Π΅Ρ‚ΠΊΠ΅.

git push --delete (branch_name) ## remove public version of branch

ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ свою Π²Π΅Ρ‚Π²ΡŒ локально, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π΅Π΅…

git push origin (branch_name)

Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ случаС Π²Π°ΠΌ, вСроятно, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваша история фиксации частной Π²Π΅Ρ‚Π²ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΠΎΠΉ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ followup commit (см. «ΠšΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚» Π²Ρ‹ΡˆΠ΅), Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ сквош-слияниС , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


nobar Β  Β 

23 апрСля 2013 Π² 17:27



317

Если Π²Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ»ΠΈ Ρ…Π»Π°ΠΌ Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈ,

git reset --soft HEAD~1

HEAD~1 -это сокращСниС для фиксации ΠΏΠ΅Ρ€Π΅Π΄ Π³Π»Π°Π²ΠΎΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ SHA-1 ΠΈΠ· hash, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. — soft option ΡƒΠ΄Π°Π»ΠΈΡ‚ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, Π½ΠΎ оставит всС ваши ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ «ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ зафиксированы», ΠΊΠ°ΠΊ выразился Π±Ρ‹ статус git.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² отслСТиваСмых Ρ„Π°ΠΉΠ»Π°Ρ… Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° фиксации ΠΏΠ΅Ρ€Π΅Π΄ Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто этого «—hard«.

OR

Если Π²Ρ‹ ΡƒΠΆΠ΅ Π½Π°ΠΆΠ°Π»ΠΈ ΠΈ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ потянул, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит Π² ΠΌΠΎΠ΅ΠΌ случаС, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git reset . Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git revert ,

git revert HEAD

Π­Ρ‚ΠΎ создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²Π΅Ρ€Π½Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΎ случайным ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


santos_mgr Β  Β 

03 сСнтября 2014 Π² 07:15



313

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ навсСгда ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π²Ρ‹ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ фиксации ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ

git log 

Π’ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ —

git reset --hard <commit_id>

git push origin <branch_name> -f

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


poorva Β  Β 

17 мая 2013 в 13:02



266

На SourceTree (GUI для GitHub) Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‰Π΅Π»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ‘Reverse Commit’. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ваши измСнСния.

На terminal:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

git revert

Или:

git reset --soft HEAD^ # Use --soft if you want to keep your changes.
git reset --hard HEAD^ # Use --hard if you don't care about keeping your changes.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Varun Parakh Β  Β 

28 июня 2013 в 10:18



248

Одна команда:

git reset --soft 'HEAD^' 

Он ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ!

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Manish Shrivastava Β  Β 

05 ΠΌΠ°Ρ€Ρ‚Π° 2014 Π² 13:55



239

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ Π΅Π³ΠΎ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½ΠΈΠΆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ git :

git reset --soft HEAD~1

ΠžΠ±ΡŠΡΡΠ½ΠΈΡ‚Π΅: Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ git reset , это Π² основном reset для любого ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ, Π·Π°Ρ‚Π΅ΠΌ, Ссли Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ с ΠΊΠ»ΡŽΡ‡ΠΎΠΌ --soft , ΠΎΠ½ вСрнСтся, Π½ΠΎ сохранитС измСнСния Π² вашСм Ρ„Π°ΠΉΠ»Π΅(Ρ„Π°ΠΉΠ»Π°Ρ…), поэтому Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ ΠΊ этапу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½, HEAD являСтся Π³Π»Π°Π²ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ, ΠΈ Ссли Π²Ρ‹ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ с ~1 (Π² этом случаС Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ HEAD^), ΠΎΠ½ вСрнСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅…

Π― создаю шаги Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ для вас, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС шаги, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ситуациях ΠΈ фиксации ΠΊΠΎΠ΄Π°:

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Alireza Β  Β 

21 июня 2017 в 09:33



220

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Git?

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ commit Π΄ΠΎ HEAD.

  1. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ внСсСнныС Π²Π°ΠΌΠΈ измСнСния:

    git reset --hard HEAD^
    
  2. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои измСнСния:

    git reset --soft HEAD^
    

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ваш ΠΆΡƒΡ€Π½Π°Π» git. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ наш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Ranjithkumar Ravi Β  Β 

23 апрСля 2014 Π² 11:21



178

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ reflog, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ состояниС

git reflog

REFLOG ΠŸΠ•Π Π•Π” Π‘Π‘Π ΠžΠ‘ΠžΠœ

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ reflog (f3cb6e2 Π² ΠΌΠΎΠ΅ΠΌ случаС) ΠΈ Ρ‚ΠΈΠΏΠ°

git reset --hard f3cb6e2

ПослС этого Π Π•ΠŸΠž HEAD Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½ΠΎ Π΄ΠΎ этого HEADid
ЖУРНАЛ ΠŸΠžΠ‘Π›Π• Π‘Π‘Π ΠžΠ‘Π

НаконСц Ρ€Π΅Ρ„Π»ΠΎΠ³ выглядит ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅

REFLOG ΠžΠšΠžΠΠ§ΠΠ’Π•Π›Π¬ΠΠžΠ™

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Shubham Chaudhary Β  Β 

06 января 2014 Π² 22:34



171

«Reset the working tree to the last commit»

git reset --hard HEAD^ 

«Clean unknown files from the working tree»

git clean    

смотритС- Git ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ справочник

NOTE: эта ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡƒΠ΄Π°Π»ΠΈΡ‚ Π²Π°ΡˆΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π΅ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ! git reset --hard бСзопаснСС –

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


Ravi_Parmar Β  Β 

03 октября 2013 Π² 12:43



154

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ запуск:

git reflog

Он ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ с вашим Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, слияниС, вытягиваниС ΠΈ Ρ‚. Π΄.

Π’ΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Ρ‚ΡŒ:

git reset --hard ActionIdFromRefLog

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


U. Ali Β  Β 

11 октября 2013 Π² 14:41



146

ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚:

git reset --soft HEAD^ ΠΈΠ»ΠΈ git reset --soft HEAD~

Π­Ρ‚ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

Π—Π΄Π΅ΡΡŒ --soft ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ сброс Π² ΡΡ‚Π°Π΄ΠΈΡŽ.

HEAD~ ΠΈΠ»ΠΈ HEAD^ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ фиксации ΠΏΠ΅Ρ€Π΅Π΄ HEAD.


Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚:

git commit --amend -m "message"

Он Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


akshay_rahar Β  Β 

06 ΠΌΠ°Ρ€Ρ‚Π° 2016 Π² 11:53



140

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ±Ρ€ΠΎΡΡŒΡ‚Π΅ свою Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ послСднСй Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ сСрвСрС (всС, Ρ‡Ρ‚ΠΎ послС этого Π±ΡƒΠ΄Π΅Ρ‚ сдСлано, Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ). Для этого Π² SourceTree я Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ» ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΈ Π²Ρ‹Π±Ρ€Π°Π» «Reset BRANCHNAME to this commit».

Π—Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ вашСго рСпозитория ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² послС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этой Π²Π΅Ρ‚Π²ΠΈ.

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


CommaToast Β  Β 

13 мая 2013 в 17:12



131

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ git log ΠΈ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ послСдний ΠΊΠΎΠ΄ фиксации hash, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

git reset <the previous co>

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


user853293 Β  Β 

15 мая 2013 в 13:12



127

Π’ ΠΌΠΎΠ΅ΠΌ случаС я случайно зафиксировал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я Π½Π΅ Ρ…ΠΎΡ‚Π΅Π». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ я сдСлал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ И это сработало:

git reset --soft HEAD^
git rm --cached [files you do not need]
git add [files you need]
git commit -c ORIG_HEAD

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gitk ΠΈΠ»ΠΈ git log —stat

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ


egridasov Β  Β 

18 июля 2013 в 06:41


ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ вопросы:

Git: ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния; git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ . + git РМ?

НуТна ΠΏΠΎΠΌΠΎΡ‰ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΎΠ±Ρ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов с Github. Π― происхоТу ΠΈΠ· срСды VSTFS, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ проститС мСня. ΠžΡ‚ΠΌΠ΅Π½Π° ΠžΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΡ… ИзмСнСний Допустим, я ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π» Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ git Π² свою…

git push, Π½Π΅ Π½Π°ΠΆΠΈΠΌΠ°ΠΉΡ‚Π΅ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

Π― Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² git ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽ Π΅Π³ΠΎ прямо сСйчас. На ΠΌΠΎΠ΅ΠΉ локальной машинС я часто ΡΠΎΠ²Π΅Ρ€ΡˆΠ°ΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. ВрСмя ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π Π•ΠŸΠž. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ всС сдСланныС…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС N ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²?

Π― Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π½Π°Π΄ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹:- aaaaaaa Implement function A bbbbbbb Implement function B ccccccc Implement function C Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… , Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² git

Π― ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π½Π°ΠΆΠ°Π». Как я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ это, хотя я Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π». Π― всСгда Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ это сбросит Π΅Π³ΠΎ: git checkout master Π½ΠΎ это Π½Π΅ сработало. Π― Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΠ» ΠΈ нашСл этот пост:…

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдниС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Git ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ состояниС?

Π― объСдинил ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² локальноС Π Π•ΠŸΠž, ΠΈ ΠΎΠ½Π° создала 26 Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Ρ…ΠΎΡ‡Ρƒ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ этот merge, Π½ΠΎ ΠΎΠ½ Π΄ΡƒΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ довольно скучно ΠΈ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ошибкам Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ 1…

Git revert, ΠΊΠ°ΠΊ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ слияниС с master?

Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» ΠΈ сдСлал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: cd puppet-configuration-prod/ git status git pull origin master git add Puppetfile_puppet-prod git commit -m ‘modificaton Omar’ git pull origin master git…

НСвозмоТно ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Git

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΡΡ‚ΡƒΠ΄ΠΈΡŽ Android, ΠΈ Git находится с Π½Π΅ΠΉ. ΠŸΡƒΡ‚ΡŒ Git Π² Android studio выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ,…

26-Π³ΠΎΠ»Ρ‹ΠΉ … ΠŸΠΎΡ‡Π΅ΠΌΡƒ fetch Π½Π΅ всСгда ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ самыС послСдниС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹?

Π£ мСня Π΅ΡΡ‚ΡŒ нСсколько Π Π•ΠŸΠž GIT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΎΡ‚Ρ€Π°Π·ΠΈΠ» локально, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π² своСм экзСмплярС JIRA, Π½ΠΎ я Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ (для мСня) странноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π£ мСня Π΅ΡΡ‚ΡŒ Π Π•ΠŸΠž, Π½Π°Π·ΠΎΠ²Π΅ΠΌ это myrepo. Если я…

ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Git Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠΈΡ‚ для git-svn

Π’ настоящСС врСмя, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ git svn dcommit git создаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² SVN для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ локального ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я сдСлал с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСй синхронизации с SVN. Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ…

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Git ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я сдСлал?

МнС Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Git. МнС Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ я ΠΌΠΎΠ³ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΡŽ.

Git — Book

2nd Edition (2014)

Download Ebook

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>

    1. 1.1
      О систСмС контроля вСрсий
    2. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4
      ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2.5
      Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2.6
      Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2.7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1
      О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2

Как Π² Git ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ?

Deprecated: Function create_function() is deprecated in /home/worldhel/public_html/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Π’ своСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π’Ρ‹ сдСлали измСнСния ΠΈ зафиксировали ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ $ git commit -m"", ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Π±Ρ‹Π²Π°Π΅Ρ‚, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ² дСйствиС Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ клавиши Enter, Π’Ρ‹ Π²Π΄Ρ€ΡƒΠ³ поняли, Ρ‡Ρ‚ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ строчСк ΠΊΠΎΠ΄Π°, Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Ρ„Π°ΠΉΠ», ΠΈΠ»ΠΈ сдСлали Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, ΠΈΠ»ΠΈ Π·Π°Π±Ρ‹Π»ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· ΠΊΠΎΠ΄Π° var_dump($foo) – ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ тСстовый Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΠ»ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ строк ΠΊΠΎΠ΄Π°, логичСски подходящиС ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ этот послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Π΄Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ содСрТимоС ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. И ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ Π² самой популярной систСмС контроля вСрсий Git прСдусмотрСн ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для Ρ‚Π°ΠΊΠΎΠΉ Π½Π΅Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ --amend.

Π’ΠΠ˜ΠœΠΠΠ˜Π•: Никогда Π½Π΅ вноситС измСнСния Π² послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ --amend, Ссли Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π²Ρ‹ ΡƒΠΆΠ΅ успСли Π·Π°ΠΏΡƒΡˆΠΈΡ‚ΡŒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти измСнСния Π² ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

ΠŸΡ€Π°Π²ΠΊΠ° ΠΊΠΎΠ΄Π° Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ (ΠΊΠ»ΡŽΡ‡ β€”amend).

На ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° история ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΈ создании послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±Ρ‹Π»Π° Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π° Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ, ΠΈ Π΅Ρ‰Π΅ трСбуСтся внСсти нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Для Π½Π°Ρ‡Π°Π»Π° сдСлаСм нСбольшиС ΠΏΡ€Π°Π²ΠΊΠΈ Π² Ρ„Π°ΠΉΠ» first.php ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ для этого Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ nano.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² нашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡ΡŒΠ΅ состояниС ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ нСзафиксировано Π² систСмС контроля вСрсий Git. Π‘Π΄Π΅Π»Π°Π΅ΠΌ это ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Π”Π°Π½Π½Ρ‹Π΅ измСнСния Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ для фиксации Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ:

Π’ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ сдСланныС измСнСния ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΊ фиксации Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Π½ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π½Π΅ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ послСднСму старому, ΠΈ ΠΌΡ‹ сдСлаСм это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π° β€”amend (Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ с Π°Π½Π³Π».: ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΊΠΈ).

1

$ git commit —amend -m»It’s commit 3″

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ примСнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΡˆΠ΅, НЕ Π‘ΠžΠ—Π”ΠΠ•Π’Π‘Π― Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π° вносятся измСнСния Π² послСдний ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ. Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ $ git log

Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅, Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ примСнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ $ git commit --amend измСнилось содСрТимоС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΎ Ρ‡Π΅ΠΌ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ измСнившийся Π₯Π•Π¨-ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ измСнился послСдний ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. Но Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π΄Π°Ρ‚Π° ΠΈ врСмя ΠΊΠΎΠΌΠΌΠΈΡ‚Π°.

Как ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°?

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ стрСмится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» логичСски Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ, поэтому ΠΏΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ процСссС написания ΠΊΠΎΠ΄Π° такая Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠ°ΠΊ внСсСниС ΠΏΡ€Π°Π²ΠΎΠΊ Π² ΠΊΠΎΠ΄ послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‡Π΅Π½ΡŒ-ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ. Но Π²ΠΎΡ‚ с Ρ‡Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ придСтся ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ, Ρ‚Π°ΠΊ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ коммСнтария ΠΊ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ это происходит ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ТСлания Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ сдСланныС измСнСния Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π’ этом Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΡ‚-ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡ β€”amend.

Рассмотрим эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²ΠΊΡƒ коммСнтария, Π² этом случаС ΠΌΡ‹ сразу Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

1

$ git commit —amend -m»Change comment in commit 3″

На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ Β $ git log для просмотра ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Π’Π°ΠΊ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ измСнилось описаниС
ΠΈ Π₯Π•Π¨-сумма послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° врСмя ΠΈ Π΄Π°Ρ‚Π° ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌΠΈ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ просто Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²ΠΊΠΈ коммСнтария ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ β€”amend. Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€Π°Π²ΠΎΠΊ Π² послСднСм ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅, ΠΈ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ рСкомСндуСтся ΠΊ использованию, Ссли этот ΠΊΠΎΠΌΠΈΡ‚ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡˆΠ΅Π½ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Как привСсти Π² порядок ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Plarium / Π₯Π°Π±Ρ€

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ нашли Π½Π° hackernoon.com. Π•Π΅ Π°Π²Ρ‚ΠΎΡ€, Thiago Miranda, ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Git Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈ эффСктивной.

О Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΡ€Π°ΠΉΠ½Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π² Git

ПослСдний мСсяц я занимался ΠΏΠ°Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ создал нСсколько сотСн ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Git. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я подСлюсь самым Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠ·Π½Π°Π» Π·Π° это врСмя: расскаТу ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΎΠ± ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ… ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСсятка ΠΊΠΎΠΌΠ°Π½Π΄.

1. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ история Π² Git?

Π’ΠΎΡ‡Π½Ρ‹ΠΉ рССстр всСх ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², содСрТащих ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ измСнСния. Π’ Π½Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ измСнСния ΠΈ врСмя ΠΈΡ… внСсСния ΠΈΠ»ΠΈ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. Π“Π΄Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ? Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Git Bash ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git log --oneline

Если Ρƒ вас слишком ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ коммСнтария ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиш со стрСлками ΠΈΠ»ΠΈ клавиш Page Up / Page Down β€” ΠΊΠ°ΠΊ ΠΈ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π³ΠΎΡ€ΡΡ‡ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ (q).

2. О коммСнтариях ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ

НС ΠΏΠΈΡˆΠΈΡ‚Π΅ Π±Π΅ΡΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌΠΈ ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΠΈ пояснСний. Π˜Ρ… Π·Π°Π΄Π°Ρ‡Π° β€” ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π²Ρ‹ внСсли Π² ΠΊΠΎΠ΄ ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Π»ΠΈΡΡŽΡ‚.

  • Как Π½Π΅ Π½Π°Π΄ΠΎ: Β«Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ index.htmlΒ»
  • Как Π½Π°Π΄ΠΎ: Β«Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈΒ»

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, для Ρ‡Π΅Π³ΠΎ это Π½ΡƒΠΆΠ½ΠΎ.
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Ρ‚Π°ΠΊΠΈΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ занятых Π² Π½Π΅ΠΌ спСциалистов Π΄Π°ΠΆΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅. Π’Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΈΡ‡Ρƒ, тСстируСтС Π΅Π΅ Π½Π° своСм ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ.

Но послС ΠΏΡƒΡˆΠ° Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ всС пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ провСряСтС β€” измСнСния, внСсСнныС Π·Π° врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этой Ρ„ΠΈΡ‡ΠΈ. Π’ Π»ΠΎΠ³Π΅ Git Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ мноТСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² с коммСнтариями Π² стилС «исправлСн». Π’ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΡ‚Π΅, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ придСтся ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ Π½ΡƒΠΆΠ½ΠΎΠ΅!

3. ВсСгда Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹

ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π—Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ β€” Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΠ»ΠΈ ΡΡ‚ΠΈΠ»ΡŒ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ элСмСнта β€” Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅: Π·Π°Ρ‡Π΅ΠΌ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²? Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваш Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с Ρ‡ΡŒΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΊΠΎΠ΄ΠΎΠΌ, Π½ΠΎ Ссли Π²Ρ‹ всСгда ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚Π΅ нСбольшиС измСнСния, Π½Π°ΠΉΡ‚ΠΈ ΠΈΡ… ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅. Π’Π°ΠΊ Π²Ρ‹ сэкономитС врСмя Π½Π° отслСТивании дСсятков ΠΈΠ»ΠΈ сотСн строк, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.

4. Π˜ΡΠΏΡ€Π°Π²ΡŒΡ‚Π΅ послСдний ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ

Π§Ρ‚ΠΎ, Ссли ΡƒΠΆΠ΅ послС добавлСния нСбольшого ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅? ВнСсти измСнСния довольно просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git commit -m β€œcorrect message” --amend

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Ссли Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡˆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ см. Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

5. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ послСдниС Π₯ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½

Битуация: ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΊ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΈΡ‡Π΅, Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ нСбольшоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, вноситС ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ снова коммититС… Π’ ΠΈΡ‚ΠΎΠ³Π΅ 5 ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅. Π‘Ρ‹Π²Π°Π»ΠΎ? ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π²Ρ‹Π±ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π° вашСй истории Π² Git, Π½ΠΎ ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΈΡ… нСслоТно ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git reset HEAD~3

Команда HEAD~3 ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ 3 Π²Π΅Ρ€Ρ…Π½ΠΈΡ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ самый послСдний. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Ρ€ΠΈ Π²Π°ΡˆΠΈΡ… послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ стСрты ΠΈΠ· Π»ΠΎΠ³Π°, Π½ΠΎ измСнСния Π² ΠΊΠΎΠ΄Π΅ останутся Π½Π° мСстС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ€Π° ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ, для этого Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git stage --diff

Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ всС измСнСния Π² ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡƒΠ±Ρ€Π°Π»ΠΈ ΠΈΠ· истории, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ индСксированы, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ снова, Π² этот Ρ€Π°Π· Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠ΅ΠΌ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ HEAD ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ относится ΠΊ послСднСму Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΌΡƒ Π²Π°ΠΌΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ. Если Π²Ρ‹ Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, ΡΠ²Π΅Ρ€ΡŒΡ‚Π΅ΡΡŒ с Π»ΠΎΠ³ΠΎΠΌ Git. Если ваш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» Π·Π°ΠΌΠ΅Ρ€ΠΆΠ΅Π½ (Π½Π΅ самый распространСнный случай), ΠΊΠΎΠΌΠ°Π½Π΄Π° HEAD~1 сотрСт всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΈΠ· Π·Π°ΠΌΠ΅Ρ€ΠΆΠ΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС, посмотритС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ.

6. Π£Π΄Π°Π»ΠΈΡ‚Π΅ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ с измСнСниями

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот способ сотрСт всС измСнСния Π±Π΅Π· возмоТности ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ послС экспСримСнтов с ΠΊΠΎΠ΄ΠΎΠΌ, Ссли ΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ соотвСтствуСт оТиданиям. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ спСрва ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ-пСсочницС.

git reset –-hard HEAD~1

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ваш послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ ΡƒΠ΄Π°Π»Π΅Π½, ΠΊΠ°ΠΊ ΠΈ всС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² ΠΊΠΎΠ΄Π΅.

7. ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ своих ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Π‘Π°ΠΌΡ‹ΠΉ эффСктивный способ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² β€” Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ rebase. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚, случайно Π½Π°ΠΆΠ°Π² Π½Π΅ Ρ‚Ρƒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ. Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ запустим rebase Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Ρ„Π»Π°Π³ -i) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git rebase -i HEAD~5

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ вошли Π² Π½Π΅Π³ΠΎ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ список ΠΈΠ· 5 послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (HEAD~5) Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ВсС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ отсортированы ΠΏΠΎ Π΄Π°Ρ‚Π΅, Ρ‚. Π΅. Π½Π°Π²Π΅Ρ€Ρ…Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ самый Π½ΠΎΠ²Ρ‹ΠΉ (этот список открываСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Vim β€” тСкстового Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Git ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°). И здСсь ΠΆΠ΅ краткая инструкция с нСсколькими ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Π°ΠΌ понадобятся ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ squash ΠΈ reword.

Π—Π°ΠΌΠ΅Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pick ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ squash, Π²Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ этот ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈΠ· Π»ΠΎΠ³Π°, ΠΈ всС измСнСния Π² ΠΊΠΎΠ΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ сгруппированы с послСдним ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pick.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pick ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ reword ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠΊΠ½Ρƒ, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ squash. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ESC ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

:wq!

Π”Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ (:) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, (w) β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ (ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ) измСнСния, (q) β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ, Π° (!) β€” Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ каТдая Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ваш ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π² Π»ΠΎΠ³Π΅ Git.

Если ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Ρ‹ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚Π΅ это ΠΎΠΊΠ½ΠΎ, Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

git rebase --edit

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠΈΠ½ΡƒΡ‚ΡŒ ΠΎΠΊΠ½ΠΎ, Π½Π΅ сохранив измСнСния, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ESC ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

:q!

Vim ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π±Π΅Π· сохранСния.

8. УправляйтС индСксациСй

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ слСдуСт ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ ΠΈΠ»ΠΈ ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ связанных Ρ„Π°ΠΉΠ»ΠΎΠ². Но ΠΊΠ°ΠΊ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния ΠΏΡ€ΠΈ индСксации?

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ 3 Ρ„Π°ΠΉΠ»Π°, ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΠΈΠ· Π½ΠΈΡ…. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

git add .

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ· индСксации Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½:

git reset -- Readme.txt

И ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

git status

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CSS:

git add *.css

Π”ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ всС ΠΏΠΎ ошибкС? Π’ΠΎΠ³Π΄Π° очиститС ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ, воспользовавшись ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

git reset --

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°:

git add -i

Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ, ввСдя ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (3), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ свои дСйствия.

Π’Ρ‹Π±Ρ€Π°Π² ΠΎΠΏΡ†ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ввСсти список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· индСксации, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

Когда Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅, Π½Π°ΠΆΠΌΠΈΡ‚Π΅ (Enter).

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² происходит ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ схСмС. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ (4) Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ нСотслСТиваСмый Ρ„Π°ΠΉΠ».

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΉΡ‚ΠΈ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ (q) Π² мСню ΠΎΠΏΡ†ΠΈΠΉ.

9. Π’Ρ‹Π²ΠΎΠ΄

Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡƒΡˆΠ΅ΠΌ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈ особСнно ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ€ΠΆΠ΅ΠΌ вашСй Π²Π΅Ρ‚ΠΊΠΈ, β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ Π² порядок ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π·Π°ΠΏΡƒΡˆΠΈΡ‚Π΅ всС Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΡƒΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ нСльзя.

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ ΠΏΠ°Ρ€Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ? ЗаглянитС Π½Π° Microverse.org.

Git — Book

2nd Edition (2014)

Download Ebook

The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com.>

    1. 1.1
      О систСмС контроля вСрсий
    2. 1.2
      ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история Git
    3. 1.3
      ΠžΡΠ½ΠΎΠ²Ρ‹ Git
    4. 1.4
      Командная строка
    5. 1.5
      Установка Git
    6. 1.6
      ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ настройка Git
    7. 1.7
      Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ?
    8. 1.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 2.1
      Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Git-рСпозитория
    2. 2.2
      Π—Π°ΠΏΠΈΡΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ
    3. 2.3
      ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
    4. 2.4
      ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‹
    5. 2.5
      Π Π°Π±ΠΎΡ‚Π° с ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ рСпозиториями
    6. 2.6
      Π Π°Π±ΠΎΡ‚Π° с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ
    7. 2.7
      ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ Π² Git
    8. 2.8
      Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    1. 3.1
      О Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠΈ Π² Π΄Π²ΡƒΡ… словах
    2. 3.2
      ΠžΡΠ½ΠΎΠ²Ρ‹ вСтвлСния ΠΈ слияния
    3. 3.3
      Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ
    4. 3.4
      Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ
    5. 3.5
      Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ
    6. 3.6
      ΠŸΠ΅Ρ€Π΅Π±Π°Π·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅
    7. 3.7

Как я ΠΌΠΎΠ³Ρƒ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ?

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ принСсСм большиС ΠΏΡƒΡˆΠΊΠΈ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ убСдимся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Ρ‹. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² случаС, Ссли Π²Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свой послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Git ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ . Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС послСднСго ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния. Если это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΡƒΠ·Π½Π°ΠΉΡ‚Π΅ большС ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° ΠΏΠΎ Git

НС Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ всС эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½Π°ΡˆΡƒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΡƒΡŽ Β«Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΡƒ ΠΏΠΎ GitΒ» — бСсплатно!

ΠžΡ‚ΠΌΠ΅Π½Π° послСднСй фиксации

Однако, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, сущСствуСт масса ситуаций, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.НапримСр. ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ — ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ!

Π’ этих случаях ΠΊΠΎΠΌΠ°Π½Π΄Π° «сброса» — ваш Π»ΡƒΡ‡ΡˆΠΈΠΉ Π΄Ρ€ΡƒΠ³:

  $ git reset - мягкая Π“ΠžΠ›ΠžΠ’ΠšΠ ~ 1
  

Reset ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ HEAD ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ вСрсии ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π²ΠΈΠ·ΠΈΠ΅ΠΉ , фактичСски ΠΎΡ‚ΠΌΠ΅Π½ΠΈΠ² Π½Π°ΡˆΡƒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ„Π»Π°Π³ —soft: это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ измСнСния Π² ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Ρ… рСвизиях сохранСны.ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ измСнСния Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСзафиксированными Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ модификациями.

Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ эти измСнСния, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„Π»Π°Π³ —hard. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ эти измСнСния Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

  $ git reset --hard HEAD ~ 1
 
 

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Tower Git, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π½Π°ΠΆΠ°Ρ‚ΡŒ CMD + Z , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ простоС сочСтаниС клавиш CMD + Z для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… дСйствий, ΠΎΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ слияния Π΄ΠΎ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ!

ΠžΡ‚ΠΌΠ΅Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… фиксаций

Π’ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ любой ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ вСрсии:

  $ git reset --hard 0ad5a7a6
  

Однако всСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ использованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сброса отмСняСт всС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈΡΡŒ:

Π£Π·Π½Π°Ρ‚ΡŒ большС

.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ git?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

git — Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° gitlab

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

Git — ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ· истории

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *