Π Π°Π·Π½ΠΎΠ΅

Stash git changes: Git — git-stash Documentation

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

Π₯Π₯ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… совСтов для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Git срСднСго уровня. Π§Π°ΡΡ‚ΡŒ 1 / Π₯Π°Π±Ρ€

Π’ΠΎΠΎΠ±Ρ‰Π΅-Ρ‚ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ я ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π» пСрСвСсти ΡΡ‚Π°Ρ‚ΡŒΡŽ Π­Π½Π΄ΠΈ ДТСффриса (Andy Jeffries) 25 Tips for Intermediate Git Users, Π½ΠΎ Π² процСссС я отбросил бСстолковыС, общСизвСстныС ΠΈΠ»ΠΈ самыС простыС совСты Π²Ρ€ΠΎΠ΄Π΅ «настройтС ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ user.name ΠΈ user.emailΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ явно Π½Π΅ подходят людям, ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΠ»ΠΎΡ‚Π½ΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ с Git.
Π’Π·Π°ΠΌΠ΅Π½ я дополню ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ· Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ («Бвоя ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Β»! Π—Π²ΡƒΡ‡ΠΈΡ‚ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π±ΡƒΠ΄Ρ‚ΠΎ я частный Π²Ρ€Π°Ρ‡ ΠΈΠ»ΠΈ Π°Π΄Π²ΠΎΠΊΠ°Ρ‚! :-] )

1. Π‘Π°ΠΌΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΠΎ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ user.{name,email,signingkey} настроСны, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² сторону ΠΌΠ΅Π»ΠΊΠΈΡ… удобств, Π²Ρ€ΠΎΠ΄Π΅ $ git config —global help.autocorrect 1 β€” Π² случаС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊ, Π³ΠΈΡ‚ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ ΡƒΠ³Π°Π΄Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π²Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π² Π²ΠΈΠ΄Ρƒ

[solar@hasher couchdb]$ git statu

WARNING: You called a Git command named ‘statu’, which does not exist.

Continuing under the assumption that you meant ‘status’

in 0.1 seconds automatically…

# On branch 0.10.x-alt

nothing to commit (working directory clean)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 здСсь ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ дСсятыС Π΄ΠΎΠ»ΠΈ сСкунды.

ΠžΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ β€” просто ΠΊ ΠΏΠΎΠΊΠ°Π·Ρƒ подсказки (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

Из альясов я добавляю Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

git config —global alias.logp ‘log —pretty=format:»%h β€” %an: %s»‘ β€” 10 послСдних ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«SHA β€” Author: Commit messageΒ»

git config —global alias.unstage ‘reset HEAD’

git config —global alias.remotes ‘remote -v’ β€” Π­Ρ‚ΠΎ сдСлаСт Π²Ρ‹Π²ΠΎΠ΄ git remote Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ, Π½ΠΎ Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ словным, ΠΊΠ°ΠΊ git remote show $branch, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ сСрвСр.

2. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ ΠΌΠ΅Ρ€Π΄ΠΆΠ΅

ΠŸΡ€ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌ мСсто ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Ρ€Π°Π·Π΄ΠΎΡ€Π° Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ стандартного diff -u:

$ git diff —merge
diff --cc dummy.rb

index 5175dde,0c65895..4a00477

--- a/dummy.rb

+++ b/dummy.rb

@@@ -1,5 -1,5 +1,5 @@@

class MyFoo

def say

- puts "Bonjour"

- puts "Hello world"

++ puts "Annyong Haseyo"

end

end

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· мСрдТащихся Π±Ρ€Π°Π½Ρ‡Π΅ΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ git checkout β€”ours flash/foo.fla Π»ΠΈΠ±ΠΎ git checkout β€”theirs flash/foo.fla β€” это ΠΈΠ·Π±Π°Π²ΠΈΡ‚ ΠΎΡ‚ нСобходимости ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ€Π°Π½Ρ‡ΠΈ ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

Π’Π°ΠΊ ΠΆΠ΅ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ различия ΠΏΠ΅Ρ€Π΅Π΄ объСдинСниСм β€” $ git diff branch2 branch3

3. Вэги.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ стадии ΠΊΠΎΠ΄Π°, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тэги.

$ git tag -m ‘$tag_description’ $tag_name

Если ΠΈΠ· вашСго Π³ΠΈΡ‚Π° содСрТимоС отправляСтся Π½Π° сборку, всС ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. ΠšΡΡ‚Π°Ρ‚ΠΈ, скорСС всСго, Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ тэги, подписанныС Π’Π°ΡˆΠΈΠΌ gpg-ΠΊΠ»ΡŽΡ‡Ρ‘ΠΌ (git config —global user.singingkey $key_ID)

4. НовыС Π±Ρ€Π°Π½Ρ‡ΠΈ

Как всСм Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ извСстно, Π² Π½ΠΎΠ²Ρ‹ΠΉ Π±Ρ€Π°Π½Ρ‡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ создаСв Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ²ΡˆΠΈΡΡŒ ($git branch new_branch; git checkout new_branch), Π»ΠΈΠ±ΠΎ сразу β€” $ git checkout -b new_branch.

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π±Ρ€Π°Π½Ρ‡ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git branch -m new_name, Π° сторонний β€” git branch -m current_name new_name.

НС самая часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° приходится ΠΈ Ρ‚Π°ΠΊ получаСтся всяко быстрСС Ρ‡Π΅ΠΌ checkout -b ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого Π±Ρ€Π°Π½Ρ‡Π°.

5. ОбъСдинСниС Π±Ρ€Π°Π½Ρ‡Π΅ΠΉ. Merge ΠΈ rebase.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ Π±Ρ€Π°Π½Ρ‡ измСнСния ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π±Ρ€Π°Π½Ρ‡Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ merge β€” m создаёт Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находятся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ, Π»ΠΈΠ±ΠΎ rebase β€” r ΠΆΠ΅ пСрСписываСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, послС rebase история получаСтся Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠΉ, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” это ΡƒΠΆΠ΅ другая история, поэтому Π² случаС ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Ρ… общСступных Π±Ρ€Π°Π½Ρ‡Π΅ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ merge. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Π·Π° количСство ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π½ΠΈΠΊΡ‚ΠΎ Π΄Π΅Π½Π΅Π³ Π½Π΅ Π±Π΅Ρ€Ρ‘Ρ‚.

МоТно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π±Ρ€Π°Π½Ρ‡ΠΈ, измСнСния Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Ρ‰Π΅ Π½Π΅ пСрСнСсСны Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π±Ρ€Π°Π½Ρ‡ β€” это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· git branch —no-merged. Π’Π°ΠΊΠΈΠ΅ Π±Ρ€Π°Π½Ρ‡ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Π΄Ρ€ΠΎΠΏΠ°Ρ‚ΡŒ, Ρ…Π΅Ρ…Π΅.

6. Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ Π±Ρ€Π°Π½Ρ‡ΠΈ

Π£Π΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ β€” Π² смыслС, remote :-]

МоТно ΠΏΡƒΡˆΠΈΡ‚ΡŒ Π² ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Π±Ρ€Π°Π½Ρ‡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ β€” git push origin branch_name, Ссли ΠΈΠΌΠ΅Π½Π° локального ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Π±Ρ€Π°Π½Ρ‡Π΅ΠΉ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ β€” git push origin localBranch:refs/heads/Remote_Branch_Name

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· имя сСрвСра ΠΈ Π±Ρ€Π°Π½Ρ‡, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ отслСТиваСмыС Π±Ρ€Π°Π½Ρ‡ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git checkout -b myfeature origin/myfeature. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² этом Π±Ρ€Π°Π½Ρ‡Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡƒΡˆΠΈΡ‚ΡŒ/Ρ„Π΅Ρ‚Ρ‡ΠΈΡ‚ΡŒ/ΠΏΡƒΠ»Π»ΠΈΡ‚ΡŒ Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½.

7. Stash

Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ git stash, ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π‘ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, занимаясь ΠΎΠ΄Π½ΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ, Β«ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒΒ» Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² сторону ΠΈ ΠΎΡ‚Π²Π»Π΅Ρ‡ΡŒΡΡ, скаТСм, Π½Π° срочноС исправлСниС Π±Π°Π³Π°, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π±Ρ€Π°Π½Ρ‡Π΅. ПослС исправлСния ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ прСспокойно Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π½Π°Ρ‡Π°Ρ‚ΠΎΠΌΡƒ.

i. hack-hack-hack

ii. git stash

iii. fix-fix-fix

iv. git commit -a -m ‘bugfix #31337’

v. git stash pop

Π’Π΅ ΠΆΠ΅, ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ git stash, посмотритС Π½Π° послСднюю строку β€” Π΅Ρ‘ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ apply Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π½Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (посмотритС git stash list послС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΉ stash!)

Если ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ фактичСски Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½Ρ‹ΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π΅ отходят ΠΎΡ‚ кассы β€” git stash save ‘commit msg’

8. Поиск Π² истории

Если ΠΏΡ€ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚ извСстно Ρ…ΠΎΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π°ΠΉΡ‚ΠΈ!

$ git log —grep=Β«Something in the messageΒ» β€” поиск ΠΏΠΎ описанию ΠΊΠΎΠΌΠΌΠΈΡ‚Π°

$ git log -S»{% include \Β«header.

P.S.: Бпасибо Π·Π° Ρ‚Π°ΠΊΠΎΠΉ Π½ΡƒΠΆΠ½Ρ‹ΠΉ +1, %username% )

БохраняСм Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ свои измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΡˆΡŒ Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ΅ ΠΈ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π²Π΄Ρ€ΡƒΠ³ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° нСотлоТная Π·Π°Π΄Π°Ρ‡Π° ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои измСнСния (Π° ΠΏΠΎΡ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ, Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡ…) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash.

Git stash

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния, Π½ΡƒΠΆΠ½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash.

Saved working directory and index state WIP on app-refactoring: 38e8211 add app footer

Если ΠΌΡ‹ сСйчас Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ — git status, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° пустая (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ).

On branch app-refactoring

nothing to commit, working tree clean

Git stash save

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° сохраняСм Π½ΠΎΠ²Ρ‹Π΅ измСнСния, ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ. Для этого Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash save <message> ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя сообщСния:

git stash save 'wip: refactoring'

Git stash list

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π² stash, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash list.

Stash — это структура стСка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ всС сообщСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ: stash@{0}, stash@{1} ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² git stash list ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° сообщСния: stash@{1} Π±Ρ‹Π»ΠΎ сгСнСрировано автоматичСски, Π° stash@{0} — созданноС Π½Π°ΠΌΠΈ.

stash@{0}: On app-refactoring: wip: refactoring
stash@{1}: WIP on app-refactoring: 38e8211 add app footer

Git stash pop

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ послСдниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ· stash ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ послС примСнСния, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash pop.

Git stash apply

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ apply вмСсто pop. Π’ этом случаС наши измСнСния Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ останутся Π² stash.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ stash, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash apply "stash@{n}" ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ stash. НСкоторыС систСмы Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ "stash@{n}" с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Ρ‚ stash@{n}.

git stash apply stash@{0}

Git stash show

Данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сводку Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² stash. ΠŸΡ€ΠΈ этом ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний stash.

Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ diff, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ:

Аналогично с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ stash для получСния сводки diff:

Git stash branch

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° создаСт Π½ΠΎΠ²Ρ‹ΠΉ stash, Π° Π·Π°Ρ‚Π΅ΠΌ удаляСт послСдний stash (ΠΊΠ°ΠΊ stash pop).

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ stash, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

git stash branch <name> stash@{1}

Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ сталкиваСмся с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ stash ΠΊ послСднСй вСрсии своСй Π²Π΅Ρ‚ΠΊΠΈ.

Git stash drop

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ сохранСнный stash, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ git stash drop ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ stash id.

git stash drop <stash_id>

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ это с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΅Π³ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ. ЕдинствСнный способ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ — Ссли ΠΌΡ‹ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» послС удалСния stash.

Git stash clear

Если Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всё Π² stash ΠΈΠ· рСпозитория, выполняСм:

использованиС stash ΠΈ rebase для обновлСния локального Π±Ρ€Π°Π½Ρ‡Π°

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Ρ€Π°Π½Ρ‡, созданный ΠΈΠ· develop.

ПослС Π΅Π³ΠΎ создания β€” Π² develop Π±Ρ‹Π»ΠΎ сдСлано ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ созданиСм pull-рСквСста β€” хочСтся ΠΈΡ… ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

ΠžΡ‚Π»ΠΈΡ‡Π½Π°Ρ докумСнтация ΠΏΠΎ rebase ΠΈ merge Π΅ΡΡ‚ΡŒ Ρ‚ΡƒΡ‚>>>.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΡƒΠΆΠ΅ сдСлали Π² локальном Π±Ρ€Π°Π½Ρ‡Π΅ β€” сначала выполняСм stash:

d:***plugins>git stash
Saved working directory and index state WIP on NG-5071-add-propertygroup-to-csproj-file: 14a423c Merged in upldate_plugins_sln (pull request #1097)
HEAD is now at 14a423c Merged in upldate_plugins_sln (pull request #1097)

Если Π±Ρ€Π°Π½Ρ‡ develop Π½Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ β€” Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ:

d:***plugins>git pull origin develop

ОбъСдиняСм Π±Ρ€Π°Π½Ρ‡ с Β«Π³Π»Π°Π²Π½Ρ‹ΠΌΒ» Π±Ρ€Π°Π½Ρ‡Π΅ΠΌ β€” Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это develop:

d:***plugins>git rebase origin/develop
First, rewinding head to replay your work on top of it...
Fast-forwarded NG-5071-add-propertygroup-to-csproj-file to origin/develop.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ наши измСнСния ΠΈΠ· stash:

d:***plugins>git stash pop
On branch NG-5071-add-propertygroup-to-csproj-file
Your branch is ahead of 'origin/NG-5071-add-propertygroup-to-csproj-file' by 8 commits.
(use "git push" to publish your local commits)

Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

modified: Plugins/AbstractGUI/AbstractGUI.csproj
modified: Plugins/AnimationFlyer/AnimationFlyer.csproj
...
modified: Plugins/UnityUI_Api/UnityUI_Api.csproj
modified: Plugins/WalkingNavigation/WalkingNavigation.csproj

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (11e43ec11678eb5f953fe6ceffdad3261346453f)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ статус:

d:***plugins>git status
On branch NG-5071-add-propertygroup-to-csproj-file
Your branch is ahead of 'origin/NG-5071-add-propertygroup-to-csproj-file' by 8 commits.
(use "git push" to publish your local commits)
...

modified: Plugins/AbstractGUI/AbstractGUI.csproj
modified: Plugins/AnimationFlyer/AnimationFlyer.csproj
...
modified: Plugins/UnityUI_Api/UnityUI_Api.csproj
modified: Plugins/WalkingNavigation/WalkingNavigation.csproj

no changes added to commit (use "git add" and/or "git commit -a"

ДобавляСм измСнСния:

d:***plugins>git add -A

ΠšΠΎΠΌΠΈΡ‚ΠΈΠΌ:

d:***plugins>git commit -m "NG-5071 Add <PropertyGroup> to .csproj files"
[NG-5071-add-propertygroup-to-csproj-file 94ca007] NG-5071 Add <PropertyGroup> to .csproj files
63 files changed, 425 insertions(+), 339 deletions(-)

Π˜Β ΡΠΎΡ…Ρ€Π°Π½ΡΠ΅ΠΌ всС обновлСния ΠΈ наши измСнСния:

d:***plugins>git push origin

ΠΊΠ°ΠΊ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π»Π΅ΠΆΠΈΡ‚ Π² git stash?

git stash apply

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ эта ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π»Π΅ΠΆΠ°Ρ‚ Π² стСкС git:

git stash show β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· послСднСго stash. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

$ git stash show
 3rdparty/PhpWhois         | 2 +-
 framework                 | 2 +-
 lib/Git/Stash.php         | 2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ измСнСния сдСланы Π² Ρ„Π°ΠΉΠ»Π°Ρ…, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ -p:

git stash show -p β€” ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π»Π΅ΠΆΠ°Ρ‚ Π² stash


Git Stash β€” это стэк. МоТно Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ измСнСния, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π² stash git.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь список stash:

git stash list

$ git stash list
stash@{0}: WIP on master: f1f1d84 typo
stash@{1}: WIP on master_mywot: 33601de Π‘ΠΊΠΈΠΏΠ½ΡƒΠ» тСст CommentNotes (Π½Π΅Ρ‚ Π² Π²Ρ‹Π΄Π°Ρ‡Π΅ послС смСны вёртски)
stash@{2}: WIP on master_mturk_revert: c410f9d typo
stash@{3}: WIP on master_mturk_modernize: 5096512 typo
stash@{4}: WIP on master: 9072aa9 typo fix
stash@{5}: WIP on master_moderate: 74c6ca8 Merge remote-tracking branch 'origin/master' into master_moderate
stash@{6}: WIP on master_moderate: 6d162fb dashboard
stash@{7}: WIP on master_moderate: 3ede2e5 typo
stash@{8}: WIP on master: df443f3 Merge pull request #600 from vicman-wi/master_max_exec_time
stash@{9}: WIP on master: f7c9dc3 typo add whitespace
stash@{10}: WIP on master: 96fa4ae more secured cookie

Π’ΡƒΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ список ΠΈΠ· 40 послСдних ΡΡ‚ΡΡˆΠ΅ΠΉ.

Команда git stash apply примСняСт послСдний stash Ρ‚.Π΅. ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ равнозначная:

git stash apply stash@{0}

А эта ΠΊΠΎΠΌΠ°Π½Π΄Π° внСсёт измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² стэкС ΠΏΠΎΠ΄ 5-Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ:

git stash apply stash@{5}

Π£Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π² git stash ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ:

git stash show -p stash@{5}


Команда apply лишь Π²Ρ‹Π΄Π°Ρ‘Ρ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ спрятаны Π² стэкС. ΠŸΡ€ΠΈ этом сами Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² стэкС. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ (ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ) послСдний сохранённый git stash:

git stash drop   # ΡƒΠ΄Π°Π»ΠΈΡ‚ послСдний git stash
git stash drop stash@{5}  #ΡƒΠ΄Π°Π»ΠΈΡ‚ git stash ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 5

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± очисткС git stash.

Как ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² «git pull» ΠΎ ΠΌΠΎΠΈΡ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… измСнСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны слияниСм?

Π²ΠΎΡ‚ моя стратСгия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π—Π°Π΄Π°Ρ‡ΠΈ

Π½ΡƒΠΆΠ½ΠΎ внСсти измСнСния Π² Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 10 Ρ„Π°ΠΉΠ»ΠΎΠ². ΠœΡ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ!—0—>, Π½ΠΎ ΠΌΠ΅Ρ€Π·Π°Π²Π΅Ρ† ΠΊΡ€ΠΈΠΊΠ½ΡƒΠ»:

ошибка: Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ пСрСписаны
ΠΏΡƒΡ‚Π΅ΠΌ слияния: поТалуйста, зафиксируйтС свои измСнСния ΠΈΠ»ΠΈ ΡΠΏΡ€ΡΡ‡ΡŒΡ‚Π΅ ΠΈΡ…, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ смоТСтС
ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ.

ΠΌΡ‹ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ commit Π° Ρ‚ΠΎ pull, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ любой.

Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Π² грязный этап Π½Π° самом Π΄Π΅Π»Π΅, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ Π² «ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области» a.ΠΊ.»ΠΈΠ½Π΄Π΅ΠΊΡΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ» ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² «Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ области» a.ΠΊ.»Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Git». И ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π·Π°Π±Ρ€Π°Ρ‚ΡŒ измСнСния с сСрвСра.

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ эту ссылку для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… этапах Git Π² ясной Ρ„ΠΎΡ€ΠΌΠ΅: этапы GIT

ΠΌΡ‹ слСдовали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ шаги

  • git stash (это сдСлало наш Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ чистым. Π’Π°ΡˆΠΈ измСнСния хранятся Π² стСкС Git).
  • git pull origin master (Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ измСнСния с сСрвСра)
  • git stash apply (ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ всС измСнСния ΠΈΠ· стСка)
  • git commit -m 'message' (внСсСнныС измСнСния)
  • git push origin master (ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ½ΡƒΠ» измСнСния Π½Π° сСрвСр)
  • git stash drop (ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ стСка)

Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΉΠΌΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊ

Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² грязный состояниС, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ вноситС измСнСния Π² свои Ρ„Π°ΠΉΠ»Ρ‹, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹, ΠΏΠΎ любой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅,Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΠΈΠ»ΠΈΠ°Π» для ΠΎΡ‡Π΅Π½ΡŒ срочной Ρ€Π°Π±ΠΎΡ‚Ρ‹, поэтому Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚ΡΠ½ΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅. The stash ΠΊΠΎΠΌΠ°Π½Π΄Π° здСсь ΠΊΠ°ΠΊ Π ΡƒΠΊΠ° ΠΏΠΎΠΌΠΎΡ‰ΠΈ.

ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ ProGIT, 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:

часто, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Ρ‡Π°ΡΡ‚ΡŒΡŽ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, всС Π²
грязноС состояниС, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚Π²ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ
Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ
Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ закончСнная Ρ€Π°Π±ΠΎΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому ΠΏΠΎΠ·ΠΆΠ΅. Π­Ρ‚ΠΎΡ‚
ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ являСтся ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash. ΠŸΡ€ΠΈΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Π±Π΅Ρ€Π΅Ρ‚
грязноС состояниС вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ отслСТиваСмыС
Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ поэтапныС измСнСния-ΠΈ сохраняСт Π΅Π³ΠΎ Π² стопкС Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ…
измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² любоС врСмя.

git stash — Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git stash Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ (ΠΈΠ»ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ ) измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ внСсли Π² свою Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ контСкст ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΅Ρ‰Π΅, Π½ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π½Π° ΠΏΠΎΠ»ΠΏΡƒΡ‚ΠΈ ΠΊ измСнСнию ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ совсСм Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ фиксации.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ вашСй Ρ€Π°Π±ΠΎΡ‚Ρ‹

Команда git stash Π±Π΅Ρ€Π΅Ρ‚ ваши нСзафиксированныС измСнСния (ΠΊΠ°ΠΊ поэтапныС, Ρ‚Π°ΠΊ ΠΈ нСустановлСнныС), сохраняСт ΠΈΡ… для дальнСйшСго использования, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… ΠΈΠ· вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ.НапримСр:

  $ git status На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС Π²Π΅Ρ‚ΠΊΠΈ ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: style.css ИзмСнСния, Π½Π΅ поставлСнныС для фиксации: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: index.html $ git stash Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 5002d47 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится наша новая домашняя страница HEAD Π² 5002d47 наша новая домашняя страница $ git status На мастСрС Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅Ρ‡Π΅Π³ΠΎ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΎΡ‡ΠΈΡ‰Π΅Π½ΠΎ  

На этом этапС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git; Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ΡΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ свой Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊ являСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ для вашСго рСпозитория Git; Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π° сСрвСр ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ сохранСнныС измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash pop :

  $ git status На мастСрС Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅Ρ‡Π΅Π³ΠΎ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΎΡ‡ΠΈΡ‰Π΅Π½ΠΎ $ git stash pop На мастСрС Π²Π΅Ρ‚ΠΊΠΈ ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: style.css ИзмСнСния, Π½Π΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ для фиксации: modified: index.html ΠžΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ refs / stash @ { 0} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)  

Π’Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° удаляСт измСнСния ΠΈΠ· вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ примСняСт ΠΈΡ… ΠΊ вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния ΠΊ своСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π² своСм Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash apply :

  $ git stash apply Π’ Π³Π»Π°Π²Π½ΠΎΠΌ ΡƒΠ·Π»Π΅ Π²Π΅Ρ‚ΠΊΠΈ ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: style.css ИзмСнСния, Π½Π΅ поставлСнныС для фиксации: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: index.html  

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ сохранСнныС измСнСния ΠΊ нСскольким вСтвям.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ основы хранСния, Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ прСдостСрСТСниС с git stash , ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ: ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Git Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, внСсСнных Π² нСотслСТиваСмыС ΠΈΠ»ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ нСотслСТиваСмых ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ запускС git stash Π±ΡƒΠ΄Π΅Ρ‚ сохранСно:

  • ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ваш индСкс (поэтапныС измСнСния)
  • измСнСния, внСсСнныС Π² Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² настоящСС врСмя ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Git (нСустановлСнныС измСнСния)

Но это Π±ΡƒΠ΄Π΅Ρ‚ , Π° Π½Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

  • Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹
  • Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹

Π˜Ρ‚Π°ΠΊ, Ссли ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ„Π°ΠΉΠ» Π² наш ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅, Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ (Ρ‚.Π΅.Π΅. ΠΌΡ‹ Π½Π΅ запускаСм git add ), git stash Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ.

  $ script.js $ git status Π’ мастСрС Π²Π΅Ρ‚ΠΊΠΈ ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: style.css ИзмСнСния, Π½Π΅ поставлСнныС для фиксации: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: index.html Π€Π°ΠΉΠ»Ρ‹ Π±Π΅Π· отслСТивания: script.js $ git stash Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° master: 5002d47 наша новая домашняя страница HEAD Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится Π½Π° 5002d47 наша новая домашняя страница $ git status На Π²Π΅Ρ‚ΠΊΠ΅ master НС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹: script.js  

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° -u (ΠΈΠ»ΠΈ --include-untracked ) сообщаСт git stash , Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ваши нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:

  $ git status Π’ мастСрС Π²Π΅Ρ‚ΠΊΠΈ ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: ΡΡ‚ΠΈΠ»ΡŒ.css ИзмСнСния, Π½Π΅ поставлСнныС для фиксации: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: index.html Π€Π°ΠΉΠ»Ρ‹ Π±Π΅Π· отслСТивания: script.js $ git stash -u Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 5002d47 наша новая домашняя страница HEAD Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится Π½Π° 5002d47 наша новая домашняя страница $ git status On branch ΠœΠ°ΡΡ‚Π΅Ρ€ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ фиксируСт, Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ чистоС  

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ измСнСния Π² ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ -a (ΠΈΠ»ΠΈ --all ) ΠΏΡ€ΠΈ запускС git stash .

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсколькими Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°ΠΌΠΈ

Π’Ρ‹ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΎΠ΄Π½ΠΈΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ git stash нСсколько Ρ€Π°Π·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash list для ΠΈΡ… просмотра. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ просто ΠΊΠ°ΠΊ Β«Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°Β» — Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ ΠΈ фиксациСй, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ создали Ρ‚Π°ΠΉΠ½ΠΈΠΊ. Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТит ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

  $ git stash list stash @ {0}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС: 5002d47 наша новая домашняя страница stash @ {1}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС: 5002d47 наша новая домашняя страница stash @ {2}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС: 5002d47 наша новая домашняя страница  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ большС контСкста, рСкомСндуСтся Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваши Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ с описаниСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ git stash save "message" :

  $ git stash save Β«Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π½Π° наш сайт» Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса На Π³Π»Π°Π²Π½ΠΎΠΌ: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π½Π° наш сайт HEAD Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ находится Π½Π° 5002d47 наша новая домашняя страница $ git stash list stash @ {0}: На мастСрС: Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π½Π° наш сайт, Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {1}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС: 5002d47, наш Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ страницы @ {2}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС: 5002d47, наша новая домашняя страница  

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git stash pop ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ примСняСт послСдний созданный Ρ‚Π°ΠΉΠ½ΠΈΠΊ: stash @ {0}

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² качСствС послСднСго Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  $ git stash pop stash @ {2}  

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сводку Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash show :

  $ git stash show index.html | 1 + style.css | 3 +++ 2 Ρ„Π°ΠΉΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, 4 ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (+)  

Или ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -p (ΠΈΠ»ΠΈ --patch ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅:

  $ git stash show -p diff --git a / style.css b / style.css Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π° 100644 индСкс 0000000..d92368b --- / dev / null +++ b / style.css @@ -0 , 0 +1,3 @@ + * {+ text-decoration: blink; +} diff --git a / index.html b / index.html index 9daeafb..ebdcbd2 100644 --- a / index.html +++ b / index.html @@ -1 +1,2 @@ +  

ЧастичныС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -p (ΠΈΠ»ΠΈ --patch ) Π² git stash , ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ «кусок» Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Π΅Π³ΠΎ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ:

  $ git stash -p diff --git a / style.css b / style.css Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ„Π°ΠΉΠ»Π° 100644 index 0000000..d92368b --- / dev / null +++ b / style.css @@ -0, 0 +1,3 @@ + * {+ text-decoration: blink; +} Π£Π±Ρ€Π°Ρ‚ΡŒ этот кусок [y, n, q, a, d, /, e ,?]? y diff --git a / index.html b / index.html index 9daeafb..ebdcbd2 100644 --- a / index.html +++ b / index.html @@ -1 +1,2 @@ + Π£Π±Ρ€Π°Ρ‚ΡŒ этот кусок [y, n, q, a, d, /, e ,?]? n  

МоТно ΡƒΠ΄Π°Ρ€ΠΈΡ‚ΡŒ ? для получСния ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ списка ΠΊΠΎΠΌΠ°Π½Π΄ Hunk. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅:

9

Команда ОписаниС
/ поиск Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСгулярного выраТСния
? help
n Π½Π΅ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ этот кусок
q

quit (Π»ΡŽΠ±Ρ‹Π΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ спрятаны)
Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ этот кусок Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹
y ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ этот кусок

НСт явной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «abort», Π½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ CTRL-C (SIGINT) ΠΏΡ€Π΅Ρ€Π²Π΅Ρ‚ процСсс сохранСния.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

Если измСнСния Π² вашСй Π²Π΅Ρ‚ΠΊΠ΅ расходятся с измСнСниями Π² вашСм Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°. ВмСсто этого Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash branch , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для примСнСния Π²Π°ΡˆΠΈΡ… сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ:

  $ git stash branch add-stylesheet stash @ {1} ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ 'add-stylesheet' Π’ Π²Π΅Ρ‚ΠΊΠ΅ add-stylesheet ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ: Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ»: style.css ИзмСнСния, Π½Π΅ поставлСнныС для фиксации: modified: index.html ΠžΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π½Ρ‹Π΅ ссылки / Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {1} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)  

Π­Ρ‚ΠΎ провСряСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π½Π° основС ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ создали свой Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² Π½Π΅Π³ΠΎ свои сохранСнныС измСнСния.

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash drop :

  $ git stash drop stash @ {1} Drop stash @ {1} (17e2697fd8251df6163117cb3d58c1f62a5e7cdb)  

Или Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС свои Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ:

  $ git stash clear  

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ git stash

Если Π²Ρ‹ просто Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash , ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.Но Ссли Π²Π°ΠΌ интСрСсно, ΠΊΠ°ΠΊ Git (ΠΈ git stash ) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ дальшС!

Π’Π°ΠΉΠ½ΠΈΠΊΠΈ фактичСски ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ фиксации. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ref Π² .git / refs / stash ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ваш послСдний созданный Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π° Π½Π° Ρ€Π°Π½Π΅Π΅ созданныС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ ссылаСтся ΠΆΡƒΡ€Π½Π°Π» reflog stash ref. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ stash @ {n}: Π½Π° самом Π΄Π΅Π»Π΅ Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ n-ю запись ΠΆΡƒΡ€Π½Π°Π»Π° для stash ref.ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ — это просто фиксация, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git log :

  $ git log --oneline --graph stash @ {0} * -. 953ddde WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 5002d47 наша новая домашняя страница | \ \ | | * 24b35a1 нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 5002d47 наша новая домашняя страница | * 7023dd4 index on master: 5002d47 наша новая домашняя страница | / * 5002d47 наша новая домашняя страница  

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ спрятали, ΠΎΠ΄Π½Π° опСрация git stash создаСт Π»ΠΈΠ±ΠΎ Π΄Π²Π°, Π»ΠΈΠ±ΠΎ Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚Π°. ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Ρ‹ΡˆΠ΅:

  • stash @ {0} , Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ для хранСния отслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash
  • stash @ {0} ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ родитСля, Ρ€Π°Π½Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° это Π±Ρ‹Π»ΠΎ Π² HEAD, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash
  • stash @ {0} Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт , Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ индСкс, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash
  • stash @ {0} Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ parent, Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash .Π­Ρ‚ΠΎΡ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ элСмСнт создаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли:
    • ваша рабочая копия Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТала нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹; ΠΈ
    • Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ --include-untracked ΠΈΠ»ΠΈ --all ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ git stash .

Как git stash ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ индСкс ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹:

  • ΠŸΠ΅Ρ€Π΅Π΄ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ измСнСния Π² отслСТиваСмых, нСотслСТиваСмых ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. НСкоторыС ΠΈΠ· этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ внСсСны Π² индСкс.

  • Π’Ρ‹Π·ΠΎΠ² git stash ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π² отслСТиваСмых Ρ„Π°ΠΉΠ»Π°Ρ… Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² вашСй Π³Ρ€ΡƒΠΏΠΏΠ΅ DAG: ΠΎΠ΄ΠΈΠ½ для нСустановлСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ для ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² индСкс. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ссылка refs / stash ref ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ….

  • ИспользованиС ΠΎΠΏΡ†ΠΈΠΈ --include-untracked Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π² нСотслСТиваСмых Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ.

  • ИспользованиС ΠΎΠΏΡ†ΠΈΠΈ --all Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ измСнСния Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² наряду с измСнСниями нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ фиксации.

Когда Π²Ρ‹ запускаСтС git stash pop , измСнСния ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для обновлСния вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΈ индСкса, Π° ΠΆΡƒΡ€Π½Π°Π» Ρ€Π΅Ρ„Π»ΠΎΠ³ΠΎΠ² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ сразу, Π½ΠΎ становятся ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°ΠΌΠΈ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰ΡƒΡŽ сборку мусора.

Как ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сохранСнныС измСнСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash

Команда git stash ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² грязном Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС сохранСнныС измСнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git stash list,

список $ git stash
Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0}:
Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {1}:
Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {2}:
Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {3}:

$ git stash list

stash @ {0}:

stash @ {1}:

stash @ {2}:

stash @ {3}:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ свой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, git Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Π² Π½Π΅Ρ‡Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π΄Π΅Ρ€Π΅Π²Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ².ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сохраняСтС свои измСнСния, ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ своСго Ρ€ΠΎΠ΄Π° фиксация Π² Π΄Π΅Ρ€Π΅Π²Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². ВсС сохранСнныС измСнСния ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС с сСрийным Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ ссылкой. stash @ {0} — это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ»ΠΈ самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΠΈΠ»ΠΈ самый послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡΠ»Π°Ρ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ссылочный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ stash @ {3}, stash @ {5}… ΠΈ Ρ‚. Π”.

Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ ΠΊΠ°ΠΊ ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ фиксации. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ хранятся ΠΈ ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΈ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ историСй ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² git

Π’Π°ΠΉΠ½ΠΈΠΊ прСдставлСн ΠΊΠ°ΠΊ фиксация, Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записано состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° Π΅Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ являСтся фиксация Π² HEAD, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π±Ρ‹Π» создан.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для извлСчСния Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· любого Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, фиксации, Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ HEAD.

  • git stash ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ
  • git ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ
  • git diff
  • git difftool

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Команда git stash show

ΠŸΡ€ΠΎΡΡ‚Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash show Π΄Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ сводку ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»Π°, Π½ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ HEAD.Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅,

Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅

git stash show
etc / project.conf | 6 + ——
1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 вставка (+), 5 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-)

git stash show

etc / project.conf | 6 + ——

1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 вставка (+), 5 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΉ (-)

Иногда это Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ HEAD, Π»ΡŽΠ±Ρ‹ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈΠ»ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash show вмСстС с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -p , ΠΎΠ½ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС измСнСния.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ.

git stash show -p stash @ {0}

git stash show -p stash @ {0}

Команда git show

Команда git-show ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для просмотра Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Команда git-show ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ для просмотра ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΊΠ°ΠΏΠ»ΠΈ, Π΄Π΅Ρ€Π΅Π²ΡŒΡ, Ρ‚Π΅Π³ΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ git-show

Π‘ΠΏΡ€Π°Π²ΠΊΠ°:

git show [ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹] <ΠΎΠ±ΡŠΠ΅ΠΊΡ‚>…

git show [ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹] <ΠΎΠ±ΡŠΠ΅ΠΊΡ‚>…


Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ HEAD:


Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° с HEAD:

git stash — Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сохранСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git stash Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сохраняСт измСнСния.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² процСссС внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π²Π°ΠΌ Π²Π΄Ρ€ΡƒΠ³ понадобится чистый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

НапримСр, Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² процСссС исправлСния ошибки, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚Π΅ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС, Π³Π΄Π΅ Π²Ρ‹ вноситС измСнСния. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ вмСстС с исправлСниСм ошибки, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ Π΄Π²Π° нСсвязанных измСнСния. НС Π»ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. ПозТС, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π³ΠΎ, эта смСсь Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒ с Ρ‚ΠΎΠ»ΠΊΡƒ.Π‘ΡƒΠ΄Π΅Ρ‚ нСпонятно. Π‘Ρ‹Π»ΠΎ Π»ΠΈ это исправлСниС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ исправлСния ошибки? Π›ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° исправлСния.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ошибкой, создав ΠΌΡ‹ΡΠ»Π΅Π½Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ мыслСнныС Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΈΡΡ‡Π΅Π·Π°ΡŽΡ‚. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ всС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ сдСлали Π΄ΠΎ сих ΠΏΠΎΡ€, ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² чистой Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области, Π·Π°Ρ‚Π΅ΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ измСнСния ΠΈΠ· Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ошибкой.

Как Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅:

$ git stash
 

сохранит всС измСнСния Π²ΠΎ всСх отслСТиваСмых Ρ„Π°ΠΉΠ»Π°Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ фиксации Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git ΠΈ восстановит Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎ состояния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ послС послСднСй Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ фиксации.

ΠžΡ‚Π²Π΅Ρ‚ git stash выглядит Ρ‚Π°ΠΊ:

$ git stash
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 271c4b5 Π‘ΠžΠžΠ‘Π©Π•ΠΠ˜Π• Π‘ΠΠœΠ«Π™ ΠŸΠžΠ‘Π›Π•Π”ΠΠ˜Π™ ΠšΠžΠœΠ˜Π’Π•Π’
 

Π‘ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ SHA1 ΠΈ сообщСниСм ΠΎ самой послСднСй фиксации Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΡ‚Π²Π΅Ρ‚Π°.

Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ исправляСтС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ. ЗафиксируйтС это. Π’ΠΎΠ³Π΄Π° Ρ‚Ρ‹ бСТишь

$ git stash pop
 

это Π²Π΅Ρ€Π½Π΅Ρ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ спрятаны послСднСй вСрсиСй git stash. ИзмСнСния, сохранСнныС Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ с измСнСниями, внСсСнными с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΈΡ… спрятали.

ЕстСствСнно, Ссли Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ строкС ΠΊΠ°ΠΊ Π² спрятанном ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ сдСлали ΠΈ зафиксировали (ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠ°), Ρ‚ΠΎΠ³Π΄Π° эта ΠΊΠΎΠΌΠ°Π½Π΄Π° сообщит ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅, ΠΈ Π²Π°ΠΌ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ. ΠœΡ‹ обсудим это ΠΏΠΎΠ·ΠΆΠ΅.

ΠžΡ‚Π²Π΅Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Авто-слияниС README
О мастСрС Ρ„ΠΈΠ»ΠΈΠ°Π»Π°
ИзмСнСния, Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для фиксации:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано)
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git checkout - <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅)

ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: README

Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a")
Π’Ρ‹ΠΏΠ°Π²ΡˆΠΈΠ΅ ссылки / Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0} (7f14ba3a7afa71a7b61df8afdd059542b4761c76)
 

Π’Π°ΠΉΠ½ΠΈΠΊ — стопка

Пока Π²Ρ‹ исправляСтС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, которая Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Π°, Ρ‡Π΅ΠΌ исправлСниС ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΠΈ.НС Π²ΠΎΠ»Π½ΡƒΠΉΡ‚Π΅ΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ git stash нСсколько Ρ€Π°Π·, ΠΈ ΠΎΠ½ сохранит Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… записях. Он ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ вСсь Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΊΠ°ΠΊ стСк, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ git stash нСсколько Ρ€Π°Π·, Ρ‚ΠΎ git pop Π²Π΅Ρ€Π½Π΅Ρ‚ измСнСния ΠΈΠ· самой послСднСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash. (Π›Π˜Π€Πž).

Π’Ρ‹Π²ΠΎΠ΄ содСрТимого Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

Π’ спискС ΠΊΠΎΠΌΠ°Π½Π΄ git stash Π±ΡƒΠ΄ΡƒΡ‚ пСрСчислСны всС сохранСнныС измСнСния:

git список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 2b71505 COMMIT_MESSAGE
stash @ {1}: WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 2b71505 COMMIT_MESSAGE
 

Π‘Π°ΠΌΡ‹ΠΉ послСдний созданный Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ 0.

ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ содСрТимоС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π½Π΅ ΠΏΡ‹Ρ‚Π°ΡΡΡŒ Π΅Π³ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.
Нам просто Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°:

$ git stash ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ 1
 README | 2 + -
 1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 вставка (+), 1 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (-)

$ git stash ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ 0
 README | 2 + -
 1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 вставка (+), 1 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (-)
 

К соТалСнию, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ случаС ΠΎΠ±Π° Π½Π°Π±ΠΎΡ€Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ снаруТи выглядят ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Оба ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ» README ΠΎΠ΄Π½ΠΎΠΉ строкой.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° git diff, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ -p:

$ git stash show -p 0

diff --git a / README b / README
index 10c055e..bc08efb 100644
--- a / README
+++ b / README
@@ -1,5 +1,5 @@
 ΠŸΠ΅Ρ€Π²Π°Ρ строка
 Вторая строка
-Π’Ρ€Π΅Ρ‚ΡŒΡ строка
+ Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3
 Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4
 Π‘Ρ‚Ρ€ΠΎΠΊΠ° пятая
 
$ git stash show -p 1

diff --git a / README b / README
индСкс 10c055e..a5a4aef 100644
--- a / README
+++ b / README
@@ -1,4 +1,4 @@
-Π‘Ρ‚Ρ€ΠΎΠΊΠ° пСрвая
+ Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1
 Вторая строка
 Π’Ρ€Π΅Ρ‚ΡŒΡ строка
 Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4
 

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сохранСнных Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π²Π° Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… (0 ΠΈ 1) Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅.

Π‘Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° git stash show ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ самый послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ.(Ρ‚Π°ΠΉΠ½ΠΈΠΊ 0)

$ git stash show
 README | 2 + -
 1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 1 вставка (+), 1 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (-)
 

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ записи ΠΈΠ· Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

Π‘Ρ‹Π²Π°ΡŽΡ‚ случаи, Ρ‡Ρ‚ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒΡΡ, я ΡΠΎΡ…Ρ€Π°Π½ΡΡŽ измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π±Ρ‹Π²Π°ΡŽ ΠΎ Π½ΠΈΡ…. Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Π·Π°ΠΌΠ΅Ρ‡Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ Π΅ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° записСй. Π― ΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° Π½ΠΈΡ… ΠΈ Π»ΠΈΠ±ΠΎ Π½Π΅ помню, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Ρ‚Π°ΠΌ, Π»ΠΈΠ±ΠΎ понимаю, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ большС Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ. Π― ΠΌΠΎΠ³Ρƒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ записи Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π½Π΅ примСняя ΠΈΡ… ΠΊ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash drop:

НапримСр:

git stash drop 1
 

сбросит Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится ΠΏΠ΅Ρ€Π΅Π΄ самой послСднСй записью Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅.ΠŸΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ записи ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ.

Π˜Ρ‚Π°ΠΊ, Ссли Π±Ρ‹ Ρƒ нас Π±Ρ‹Π» Ρ‚Π°ΠΊΠΎΠΉ список git stash:

stash @ {0}: WIP ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅: 2ead3e3 ... Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу
stash @ {1}: На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 9cc0589 ... Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ‡Π°Ρ‚ΠΊΡƒ Π² элСктронной ΠΏΠΎΡ‡Ρ‚Π΅
stash @ {2}: На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 9b80575 ... Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ β„– 42
 

Ρ‚ΠΎΠ³Π΄Π°

$ git stash pop 1
 

ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ списку git stash:

stash @ {0}: WIP ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅: 2ead3e3 ... Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° Π³Π»Π°Π²Π½ΡƒΡŽ страницу
stash @ {1}: На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 9b80575 ... Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ β„– 42
 

ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

Если Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько записСй Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, ΠΈ Π²Ρ‹ большС Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с Π½ΠΈΠΌΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

git stash clear
 

ΠΊΠΎΠΌΠ°Π½Π΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС записи сразу.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ²

Π‘Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π² нашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ ΠΈ Π΅Ρ‰Π΅ Π½Π΅ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΈ ΠΌΡ‹ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ всС это ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚ΡŒ.
Для этого ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ -u, Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ —include-untracked:

$ git stash -u
 

ЕдинствСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ git show Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅.

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅

$ git stash pop
Авто-слияниС README
ΠšΠžΠΠ€Π›Π˜ΠšΠ’ (содСрТаниС): ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния Π² README
 

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° README (Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ слияния):

<<<<<<< ОбновлСно Π² апстримС
Линия пСрвая
=======
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1
>>>>>>> ИзмСнСния припрятаны
Вторая строка
Π’Ρ€Π΅Ρ‚ΡŒΡ строка
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4
Π‘Ρ‚Ρ€ΠΎΠΊΠ° пятая
 

ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ это Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² этой строкС, ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°).НапримСр, ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Π΅Π³ΠΎ Π½Π°:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° 1 пСрвая
Вторая строка
Π’Ρ€Π΅Ρ‚ΡŒΡ строка
Π‘Ρ‚Ρ€ΠΎΠΊΠ° 4
Π‘Ρ‚Ρ€ΠΎΠΊΠ° пятая
 

Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ статус

$ git status

О мастСрС Ρ„ΠΈΠ»ΠΈΠ°Π»Π°
НС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git reset HEAD <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ сцСну)
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)

ΠΎΠ±Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹: README

Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a")
 

На этом этапС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ сразу Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ‰ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ git pop Π½Π΅ ΠΌΠΎΠ³ чисто ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, ΠΎΠ½ Π½Π΅ удалял измСнСния ΠΈΠ· Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² этом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ git stash list. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, запустив git stash drop, ΠΊΠ°ΠΊ описано Ρ€Π°Π½Π΅Π΅.

Manpage Ubuntu: git-stash — ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ измСнСния Π² грязном Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ подальшС ΠΎΡ‚

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΎ: git-man_2.7.4-0ubuntu1_all

 
ΠΠΠ˜ΠœΠ•ΠΠžΠ’ΠΠΠ˜Π•
       git-stash - ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ измСнСния Π² грязном Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

 
ΠžΠ‘Π—ΠžΠ 
         git   stash  list [<ΠΎΠΏΡ†ΠΈΠΈ>]
         git   stash  show []
         git   stash  drop [-q | --quiet] []
         git   stash  (pop | apply) [--index] [-q | --quiet] []
         git   stash  branch  []
         git   stash  [ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ [-p | --patch] [-k | - [no-] keep-index] [-q | --quiet]
                    [-u | --include-untracked] [-a | --all] [<сообщСниС>]]
         git   stash  clear
         git   stash  create [<сообщСниС>]
         git   stash  store [-m | --message ] [-q | --quiet] 

 
ΠžΠŸΠ˜Π‘ΠΠΠ˜Π•
       Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ
       index, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² чистый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.Команда сохраняСт ваш Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ
       измСняСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² соотвСтствии с фиксациСй HEAD.

       ИзмСнСния, спрятанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пСрСчислСны Π² спискС git stash list,
       ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash show ΠΈ восстановлСно (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°)
       с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ git stash. Π’Ρ‹Π·ΠΎΠ² git stash Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² эквивалСнтСн Π²Ρ‹Π·ΠΎΠ²Ρƒ git stash
       спасти. Π’Π°ΠΉΠ½ΠΈΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ отобраТаСтся ΠΊΠ°ΠΊ "WIP Π½Π°  Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅  ...", Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ большС
       ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании.ПослСдний созданный Π²Π°ΠΌΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊ хранится Π² refs / stash; старыС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ находятся Π²
       reflog этой ссылки ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½ с использованиСм ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ синтаксиса reflog (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stash @ {0} -
       послСдний созданный Ρ‚Π°ΠΉΠ½ΠΈΠΊ, stash @ {1} - ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ, stash@{2.hours.ago} -
       Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ).

 
ОПЦИИ
       ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ [-p | --patch] [-k | - [no-] keep-index] [-u | --include-untracked] [-a | --all] [-q | --quiet]
       [<сообщСниС>]
           Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Π½ΠΎΠ²ΠΎΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅   ΠΈ запуститС git reset --hard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ….Π§Π°ΡΡ‚ΡŒ  являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π΄Π°Π΅Ρ‚ описаниС вмСстС с сохранСнным состояниСм.
           Для быстрого создания снимка Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ,  Β«saveΒ» ΠΈ , Π½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
           <сообщСниС> Π½Π΅ запускаСт это дСйствиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° с ошибкой
           Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

           Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция --keep-index, всС измСнСния, ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² индСкс, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ.
           Π½Π΅ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ.

           Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция --include-untracked, всС нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈ
           Π·Π°Ρ‚Π΅ΠΌ очистил с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git clean, оставив Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΎΡ‡Π΅Π½ΡŒ чистом состоянии.Если вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --all, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΈ ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‚ΡΡ Π²
           Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ нСотслСТиваСмым Ρ„Π°ΠΉΠ»Π°ΠΌ.

           Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ --patch Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ ΠΈΠ· Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ HEAD ΠΈ
           Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ. Π—Π°ΠΏΠΈΡΡŒ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ построСна Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π΅Π΅ индСксноС состояниС
           Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ состояниС индСкса вашСго рСпозитория, Π° Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ
           измСняСт ваш Π²Ρ‹Π±ΠΎΡ€ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ измСнСния Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚
           вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ.Π‘ΠΌ. Π Π°Π·Π΄Π΅Π» Β«Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌΒ» Π²  git-add  (1), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ
           Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ --patch.

           ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --patch ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ --keep-index. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ --no-keep-index, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это.

       список [<ΠΎΠΏΡ†ΠΈΠΈ>]
           ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас Π΅ΡΡ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ   ΡƒΠΊΠ°Π·Π°Π½ с Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,
           stash @ {0} - послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ, stash @ {1} - ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΈ Ρ‚. Π΄.), имя
           Π²Π΅Ρ‚ΠΊΠ°, которая Π±Ρ‹Π»Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС фиксации
           Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π±Ρ‹Π» основан Π½Π°.stash @ {0}: WIP ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅: 6ebd0e2 ... ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ git-stash
               stash @ {1}: На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 9cc0589 ... Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ git-stash

           Команда ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅  git   log  для управлСния Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ отобраТаСтся.
           ΠΈ ΠΊΠ°ΠΊ. Π‘ΠΌ.  git-log  (1).

       ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ []
           ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ измСнСния, записанныС Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниСм Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΅Π³ΠΎ
           ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ. Если  Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, отобраТаСтся послСдний.По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
           ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ diffstat, Π½ΠΎ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, извСстный для  git   diff  (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, git
           stash show -p stash @ {1}, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ самый послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠ°Ρ‚Ρ‡Π°). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅
           ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ stash.showStat ΠΈ / ΠΈΠ»ΠΈ stash.showPatch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
           ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

       pop [--index] [-q | --quiet] []
           Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ сохранСнноС состояниС ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ
           состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚.Π΅.Π΅. Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ git stash save. Рабочая
           ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ индСксу.

           ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ возникновСнию ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²; Π² этом случаС ΠΎΠ½ Π½Π΅ удаляСтся ΠΈΠ·
           список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ git stash drop Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ
           ΠΏΠΎΡ‚ΠΎΠΌ.

           Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --index, Ρ‚ΠΎ пытаСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ
           ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈ индСкса. Однако это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.
           (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² индСксС, поэтому Π²Ρ‹ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния ΠΊΠ°ΠΊ
           ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ).Если  Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, прСдполагаСтся, Ρ‡Ρ‚ΠΎ stash @ {0}, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС  Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ссылкой.
           Ρ„ΠΎΡ€ΠΌΡ‹ stash @ {}.

       ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ [--index] [-q | --quiet] []
           Как pop, Π½ΠΎ Π½Π΅ удаляйтС состояниС ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ pop,  ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ
           любой ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚, созданный ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ сохранСния ΠΈΠ»ΠΈ создания Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

       Π²Π΅Ρ‚ΠΊΠ° <имя-Π²Π΅Ρ‚ΠΊΠΈ> [<Π²Π΅Ρ‚ΠΊΠ°>]
           Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΈ провСряСт Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ , начиная с фиксации Π²
           ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» создан , примСняСт измСнСния, записанныС Π² , ΠΊ
           Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ индСкс.Если это ΡƒΠ΄Π°Π»ΠΎΡΡŒ, ΠΈ  являСтся ссылкой Π½Π°
           form stash @ {}, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ удаляСт . Если  Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, примСняСтся
           самый послСдний.

           Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Π΅Ρ‚ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ запускали git stash save, измСнилась достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹
           ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ git stash Π½Π΅ удаСтся ΠΈΠ·-Π·Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΉΠ½ΠΈΠΊ накладываСтся ΠΏΠΎΠ²Π΅Ρ€Ρ…
           ΠΊΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» HEAD Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ запуска git stash, ΠΎΠ½ восстанавливаСт ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ спрятанный
           состояниС Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².Чисто
           Π£Π΄Π°Π»ΠΈΡ‚Π΅ всС спрятанныС состояния. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ эти состояния Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹,
           ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹   Π½ΠΈΠΆΠ΅ для Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ стратСгии).

       drop [-q | --quiet] []
           Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ сохранСнноС состояниС ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Если  Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, ΠΎΠ½
           удаляСт послСдний. Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ stash @ {0}, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС  Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠΌ хранСния
           ссылка Π½Π° Ρ„ΠΎΡ€ΠΌΡƒ stash @ {}.Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅
           Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ фиксации) ΠΈ Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π±Π΅Π·
           сохраняя Π΅Π³ΠΎ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ Π² пространствС ΠΈΠΌΠ΅Π½ ref. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для использования Π² сцСнариях.
           ВСроятно, это Π½Π΅ Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ; см. Β«ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ» Π²Ρ‹ΡˆΠ΅.

       ΠΌΠ°Π³Π°Π·ΠΈΠ½
           Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, созданный с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ  git   stash   create  (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся висящим ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ слияния) Π²
           ссылка Π½Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰Π°Ρ ΠΆΡƒΡ€Π½Π°Π» ссылок Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ для использования Π² сцСнариях.ВСроятно, это Π½Π΅ Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ; см. Β«ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ» Π²Ρ‹ΡˆΠ΅.

 
ΠžΠ‘Π‘Π£Π–Π”Π•ΠΠ˜Π•
       Π’Π°ΠΉΠ½ΠΈΠΊ прСдставлСн ΠΊΠ°ΠΊ фиксация, Π² Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ записано состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°,
       Π° Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ - это фиксация Π² HEAD, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» создан Ρ‚Π°ΠΉΠ½ΠΈΠΊ. Π”Π΅Ρ€Π΅Π²ΠΎ
       Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ записываСт состояниС индСкса ΠΏΡ€ΠΈ создании Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΈ ΠΎΠ½ становится
       ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° HEAD. Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² выглядит Ρ‚Π°ΠΊ:

                  .---- Π’Ρ‚
                 / /
           -----ЗДРАВБВВУЙ

       Π³Π΄Π΅ H - фиксация HEAD, I - фиксация, которая записываСт состояниС индСкса, Π° W -
       commit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ записываСт состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

 
ΠŸΠ Π˜ΠœΠ•Π Π«
       Π’ΡŠΠ΅Π·ΠΆΠ°Ρ Π² грязноС Π΄Π΅Ρ€Π΅Π²ΠΎ
           Когда Π²Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΈ измСнСния Π² восходящСм Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.
           ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅. Когда ваши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π½Π΅
           ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с измСнСниями Π² восходящСм ΠΏΠΎΡ‚ΠΎΠΊΠ΅, простой git pull ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ
           Π²ΠΏΠ΅Ρ€Π΅Π΄.Однако Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° ваши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚ с Π²Ρ‹ΡˆΠ΅ΡΡ‚ΠΎΡΡ‰ΠΈΠΌ
           changes, Π° git pull отказываСтся ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ваши измСнСния. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ
           ваши измСнСния ΠΏΡ€ΠΎΡ‡ΡŒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

               $ git pull
                ...
               Ρ„Π°ΠΉΠ» foobar устарСл, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объСдинСн.
               $ git stash
               $ git pull
               $ git stash pop

       ΠŸΡ€Π΅Ρ€Π²Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс
           Когда Π²Ρ‹ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ, ваш босс ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ исправили
           Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сразу.
               #... ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Π²Π·Π»Π°ΠΌΡ‹Π²Π°Ρ‚ΡŒ ...

           Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ  git   stash , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

               # ... Ρ…Π°ΠΊ Ρ…Π°ΠΊ Ρ…Π°ΠΊ ...
               $ git stash
               $ edit Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ΅ исправлСниС
               $ git commit -a -m "Π˜ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² спСшкС"
               $ git stash pop
               # ... ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Π²Π·Π»ΠΎΠΌ ...

       ВСстированиС частичных ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
           Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash save --keep-index, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²
           ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй:

               #... Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ ...
               $ git add --patch foo # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π² индСкс
               $ git stash save --keep-index # ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅
               $ edit / build / test пСрвая Ρ‡Π°ΡΡ‚ΡŒ
               $ git commit -m 'First part' # Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ протСстированноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅
               $ git stash pop # готовимся ΠΊΠΎ всСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ измСнСниям
               # ... ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ ΠΏΡΡ‚ΡŒ шагов, ΠΏΠΎΠΊΠ° Π½Π΅ останСтся ΠΎΠ΄Π½Π° фиксация ...
               $ edit / build / test ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части
               $ git commit foo -m 'ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части'

       ВосстановлСниС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΡ‡ΠΈΡ‰Π΅Π½Ρ‹ / ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ
           Если Π²Ρ‹ ΠΏΠΎ ошибкС сброситС ΠΈΠ»ΠΈ очиститС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, ΠΈΡ… нСльзя Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом.
           ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ бСзопасности.Однако Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список
           Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС Π΅Ρ‰Π΅ находятся Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, Π½ΠΎ большС Π½Π΅ доступны:

               git fsck --unreachable |
               grep commit | Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ -d \ -f3 |
               xargs git log --merges --no-walk --grep = WIP

 
БМОВРИ Π’ΠΠšΠ–Π•
         git-checkout  (1),  git-commit  (1),  git-reflog  (1),  git-reset  (1)

 
GIT
       Π§Π°ΡΡ‚ΡŒ Π½Π°Π±ΠΎΡ€Π°  git  (1)
 

git stash — Как Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния

БущСствуСт мноТСство ситуаций, ΠΊΠΎΠ³Π΄Π° чистая рабочая копия рСкомСндуСтся ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ трСбуСтся: ΠΏΡ€ΠΈ объСдинСнии Π²Π΅Ρ‚Π²Π΅ΠΉ, ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ просто ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

Команда «git stash» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π½ΠΎ бСзопасно) ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСзафиксированныС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния — ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Π°ΠΌ Ρ‡ΠΈΡΡ‚ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ копию.

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

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

git stash: Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° для Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Допустим, Ρƒ вас сСйчас Π΅ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ:

  $ git status
  ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: index.php
  ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ: css / styles.css
  

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ контСкст — Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ срочно ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ошибкой — Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ эти измСнСния с Π΄ΠΎΡ€ΠΎΠ³ΠΈ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ просто Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это нСзакончСнная Ρ€Π°Π±ΠΎΡ‚Π°.

Π’ΠΎΡ‚ Π³Π΄Π΅ пригодится git stash:

  $ git stash
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС:
   2dfe283 Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ…ΠΎΠ΄Π°
HEAD Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π° 2dfe283 Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ…ΠΎΠ΄Π° Π² систСму
  

Π’Π°ΡˆΠ° рабочая копия Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ чистая: всС нСзафиксированныС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π±Ρ‹Π»ΠΈ сохранСны Π² Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Β«Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΎΠ±ΠΌΠ΅Π½Π°Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт Git’s Stash.Π’Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡƒΡ‚Π΅ΠΌ получСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ простого ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²Π΅Ρ‚Π²Π΅ΠΉ).

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ с Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ Π²Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Git’s Stash ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния. Когда Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ с Ρ‚ΠΎΠ³ΠΎ мСста, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сохранСнноС состояниС:

  $ git stash pop
  

Π€Π»Π°Π³ Β«popΒ» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ послСднСС сохранСнноС состояниС ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΡƒΠ΄Π°Π»ΠΈΡ‚ Π΅Π³ΠΎ прСдставлСниС Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ (Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами: ΠΎΠ½ выполняСт очистку Π·Π° вас).

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ элСмСнт Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° (Π½Π΅ самый послСдний), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ индСксноС имя этого элСмСнта Π² ΠΎΠΏΡ†ΠΈΠΈ Β«popΒ»:

  $ git stash pop stash @ {2}
  
НаконСчник
ИспользованиС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° Π² башнС

Π’ случаС, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Tower Git, сохранСниС ΠΈ восстановлСниС ΠΈΠ· Stash ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ прямо с ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов. Tower Π΄Π°ΠΆΠ΅ позволяСт Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ состояниС ΠΈΠ»ΠΈ вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ ΠΏΡ€ΠΈ восстановлСнии Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°:

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

stash (1) — справочная страница Linux

Имя

git-stash — Π£Π±Ρ€Π°Ρ‚ΡŒ измСнСния Π² грязный Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Π‘Π²ΠΎΠ΄ΠΊΠ°

  git stash  список [<ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹>]
  git stash  ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ []
  git stash  drop [-q | --quiet] []
  git stash  (pop | ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ) [--index] [-q | --quiet] []
  git stash  Π²Π΅Ρ‚ΠΊΠ° <имя-Π²Π΅Ρ‚ΠΊΠΈ> []
  git stash  [ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ [--patch] [-k | - [no-] keep-index] [-q | --quiet] []]
  git stash  ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ
  git stash  ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ 

ОписаниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ индСкса, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² чистый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.Π’
ΠΊΠΎΠΌΠ°Π½Π΄Π° сохраняСт ваши Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² соотвСтствиС с фиксациСй HEAD.

ИзмСнСния, спрятанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ пСрСчислСны Π² спискС git stash list, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash show ΠΈ восстановлСны (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ²Π΅Ρ€Ρ…
Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚) с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ git stash. Π’Ρ‹Π·ΠΎΠ² git stash Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² эквивалСнтСн Π²Ρ‹Π·ΠΎΠ²Ρƒ git stash save. Π’Π°ΠΉΠ½ΠΈΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ отобраТаСтся ΠΊΠ°ΠΊ «ΠΠ—ΠŸ Π½Π°
branchname … «, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ сообщСниС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΈ Π΅Π³ΠΎ создании.

ПослСдний созданный Π²Π°ΠΌΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊ хранится Π² refs / stash; Π±ΠΎΠ»Π΅Π΅ старыС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ находятся Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ссылок этой ссылки ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π²Π°Π½Ρ‹ с использованиСм ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ синтаксиса ΠΆΡƒΡ€Π½Π°Π»Π° ссылок
(Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, stash @ {0} — это послСдний созданный Ρ‚Π°ΠΉΠ½ΠΈΠΊ, stash @ {1} — ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, stash@{2.hours.ago} Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½).

ΠžΠΏΡ†ΠΈΠΈ

ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ [—patch] [- [no-] keep-index] [-q | —quiet] [<сообщСниС>]

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Π½ΠΎΠ²ΠΎΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ ΠΈ запуститС git reset —hard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ….Π§Π°ΡΡ‚ΡŒ Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π΄Π°Π΅Ρ‚ описаниС
вмСстС со спрятанным состояниСм. Для быстрого создания снимка Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈ «save» ΠΈ , Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ даст
запускайтС это дСйствиС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠΎΠΌΠ°Π½Π΄Π° с ошибкой Π½Π΅ создавала Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция —keep-index, всС измСнСния, ΡƒΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² индСкс, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ —patch Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ Π² Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ HEAD ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.Π—Π°ΠΏΠΈΡΡŒ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ построСна Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ
Π΅Π³ΠΎ состояниС индСкса совпадаСт с состояниСм индСкса вашСго рСпозитория, Π° Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ измСнСния
Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ —patch ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ —keep-index. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ —no-keep-index, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это.

список [<ΠΎΠΏΡ†ΠΈΠΈ>]
ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΡƒΠΊΠ°Π·Π°Π½ с Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0} — послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {1} — ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΈ Ρ‚. Π”.),
имя Π²Π΅Ρ‚ΠΊΠΈ, которая Π±Ρ‹Π»Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ создания Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС фиксации, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» основан Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

 stash @ {0}: WIP ΠΏΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅: 6ebd0e2 ... ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ git-stash
stash @ {1}: На Π³Π»Π°Π²Π½ΠΎΠΌ сСрвСрС: 9cc0589 ... Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ git-stash 
Команда ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git log , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ. Π‘ΠΌ. git-log (1).
ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ []
ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ измСнСния, записанныС Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ сохранСнным состояниСм ΠΈ Π΅Π³ΠΎ исходным Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, отобраТаСтся послСдний. ΠžΡ‚
ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ diffstat, Π½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, извСстный для git diff (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, git stash show -p stash @ {1} для просмотра Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅
Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ‚Ρ‡Π°).
pop [—index] [-q | —quiet] []
Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ сохранСнноС состояниС ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ состояния Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ git stash save.
Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ индСксу.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ возникновСнию ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²; Π² этом случаС ΠΎΠ½ Π½Π΅ удаляСтся ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ git
Π·Π°Ρ‚Π΅ΠΌ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция —index, Ρ‚ΠΎ пытаСтся Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, Π½ΠΎ ΠΈ измСнСния индСкса. Однако это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Π΅Ρ€ΠΏΠ΅Ρ‚ΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ
ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² индСксС, поэтому Π²Ρ‹ большС Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ измСнСния Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ).

Если Π½Π΅ Π·Π°Π΄Π°Π½, прСдполагаСтся, Ρ‡Ρ‚ΠΎ stash @ {0}.

ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ [—index] [-q | —quiet] []
Как pop, Π½ΠΎ Π½Π΅ удаляСт состояниС ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ².
Ρ„ΠΈΠ»ΠΈΠ°Π» <Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°> []
Π‘ΠΎΠ·Π΄Π°Π΅Ρ‚ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ , начиная с фиксации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π» создан , примСняСт измСнСния
записываСтся Π² Π² Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈ индСкс, Π·Π°Ρ‚Π΅ΠΌ отбрасываСт , Ссли это Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

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

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