Π Π°Π·Π½ΠΎΠ΅

Git apply stash: Git — git-stash Documentation

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

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash apply

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ git stash pop ΡƒΠΆΠ΅ довольно Π΄Π°Π²Π½ΠΎ. НСдавно я ΡƒΠ·Π½Π°Π» ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ git stash apply . Когда я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» Π΅Π³ΠΎ, ΠΌΠ½Π΅ показалось, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ git stash pop .

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash apply ?

git

git-stash

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

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


Sandeep Raju Prabhakar Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2013 Π² 03:14

6 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ²


  • Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git-stash ΠΈ git-checkout?

    Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСстного отдСлСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Git Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ local changes to the following files would be overwritten by checkout . Π’ΠΎΠ³Π΄Π° я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ recommendation Please, commit your changes or stash them before you can switch branches . Π―…

  • Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ‘git stash apply stash@{2}’ ΠΈ ‘ git stash apply —2’

    скаТСм, Ρƒ мСня Π΅ΡΡ‚ΡŒ список git stash, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅: $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert added file_size stash@{2}: WIP on master: 21d80a5 added number to log Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash apply stash@{2} ΠΈ ‘git stash. ..



1694

git stash pop выбрасываСт (самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) Ρ‚Π°ΠΉΠ½ΠΈΠΊ послС Π΅Π³ΠΎ примСнСния, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ git stash apply оставляСт Π΅Π³ΠΎ Π² спискС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² для Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования (ΠΈΠ»ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ‚Π΅ΠΌ git stash drop Π΅Π³ΠΎ).

Π­Ρ‚ΠΎ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ , ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ послС git stash pop, ΠΈ Π² этом случаС ΠΎΠ½ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, оставив Π΅Π³ΠΎ вСсти сСбя Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ git stash apply .

Π”Ρ€ΡƒΠ³ΠΎΠΉ способ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° это: git stash pop — это git stash apply && git stash drop .

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


John Zwinck Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2013 Π² 03:15



83

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ» эту ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ссылку, которая ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, ΠΊΠ°ΠΊ заявил Π”ΠΆΠΎΠ½ Π¦Π²ΠΈΠ½ΠΊ, ΠΈ нСдостаток git stash pop .

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

Бсылка: http://codingkilledthecat.wordpress.com/2012/04/27/git-stash-pop-considered-harmful/

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


briankip Β  Β 

23 сСнтября 2013 Π² 20:42



69

git stash pop примСняСт Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ скрытый элСмСнт ΠΈ удаляСт Π΅Π³ΠΎ ΠΈΠ· стСка. git stash apply Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ оставляСт Π΅Π³ΠΎ Π² стопкС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ².

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


jchapa Β  Β 

08 ΠΌΠ°Ρ€Ρ‚Π° 2013 Π² 03:16


  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ git stash ΠΏΠΎΠΏ дСйствуСт ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ

    ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ капСльная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠΏ-ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Π½Π΅ сработала Π±Ρ‹ для мСня? ΠΏΠ°ΠΏΠ° Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ я. Мой процСсс Ρ‚Π°ΠΊΠΎΠ²: git stash save name of save git stash pop Π·Π°Ρ‚Π΅ΠΌ: git stash list (and name of save will still be listed). Π’Π²Π΅Π΄ΠΈΡ‚Π΅ описаниС изобраТСния здСсь

  • Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash drop

    Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash drop ? Оба ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Ρ‚ΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΅Ρ‰Π΅?



45

Π£Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Π³ΠΎ Π² дСйствии ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°Π΄ Π²Π΅Ρ‚Π²ΡŒΡŽ master ΠΈ ΠΈΠΌΠ΅Π΅ΠΌ Ρ„Π°ΠΉΠ» hello.txt , содСрТащий строку «Hello».

Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ„Π°ΠΉΠ» ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ строку «ΠΌΠΈΡ€». Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, поэтому Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ stash Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

git stash

Π’Ρ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ, исправили ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ своСй Π²Π΅Ρ‚Π²ΡŒΡŽ master , поэтому Π²Ρ‹ pop внСсли измСнСния:

git stash pop

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ссли Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ содСрТимоС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅:

$ git stash show -p
No stash found.

Однако, Ссли вмСсто этого Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash apply , Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ спрятанный ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ сохранитС Π΅Π³ΠΎ:

$ git stash show -p
diff --git a/hello.txt b/hello.txt
index e965047..802992c 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello
+Hello world

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, pop Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ pop стСка — ΠΎΠ½ фактичСски удаляСт элСмСнт, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ выскочил, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ apply большС ΠΏΠΎΡ…ΠΎΠΆ Π½Π° peek .

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


Maroun Β  Β 

30 ноября 2016 Π² 12:27



8

Π’ git stash — это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ хранСния, ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

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

git stash apply //apply the changes without removing stored files from stash area.

git stash pop  // apply the changes as well as remove stored files from stash area.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: — git apply примСняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния ΠΈΠ· области Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ git pop примСняСт, Π° Ρ‚Π°ΠΊΠΆΠ΅ удаляСт измСнСния ΠΈΠ· области stash .

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


Vikrant Kashyap Β  Β 

16 мая 2019 в 13:12



2

Git Stash Pop vs apply Ρ€Π°Π±ΠΎΡ‚Π°

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

# apply the top stashed changes and delete it from git stash area.
git stash pop  

Но Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ свои Π²Π΅Ρ€Ρ…Π½ΠΈΠ΅ спрятанныС измСнСния ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ нСэтапным измСнСниям, Π½Π΅ удаляя ΠΈΡ…, Ρ‚ΠΎ Π²Π°ΠΌ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ git stash apply .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ этот случай с Stack классами pop() ΠΈ peek() ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Π³Π΄Π΅ pop измСняСт Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π½Π° Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ (top = top-1), Π½ΠΎ peek() ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ элСмСнт.

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


Vikrant Kashyap Β  Β 

27 фСвраля 2019 Π² 09:03


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

ΠœΠΎΠ³Ρƒ Π»ΠΈ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git pull —rebase вмСсто «git stash git pull git stash pop»?

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git pull —rebase ΠΈ git stash git pull git stash pop

ΠžΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Git Stash Pop

Π― сдСлал git stash pop, ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ мСня ΠΊΡƒΡ‡Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ². Π― зафиксировал вСсь свой Π½Π΅Π΄Π°Π²Π½ΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎ git stash pop , Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΈ способ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ всСх…

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ `git stash show -p stash@{N}` ΠΈ `git show stash@{N}`?

Π― Π΄ΡƒΠΌΠ°Π», Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² основном ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° я ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» $ git stash show -p stash@{N} ΠΈ $ git show stash@{N} послСдний ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ…

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git-stash ΠΈ git-checkout?

Π― ΠΏΡ‹Ρ‚Π°ΡŽΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мСстного отдСлСния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Git Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ я Π½Π΅ ΠΌΠΎΠ³Ρƒ этого ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ local changes to the following files would be overwritten by checkout . Π’ΠΎΠ³Π΄Π° я…

Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ‘git stash apply stash@{2}’ ΠΈ ‘ git stash apply —2’

скаТСм, Ρƒ мСня Π΅ΡΡ‚ΡŒ список git stash, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅: $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert added file_size stash@{2}:. ..

ΠŸΠΎΡ‡Π΅ΠΌΡƒ git stash ΠΏΠΎΠΏ дСйствуСт ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ

ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ капСльная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠΏ-ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Π½Π΅ сработала Π±Ρ‹ для мСня? ΠΏΠ°ΠΏΠ° Π²Π΅Π΄Π΅Ρ‚ сСбя Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ я. Мой процСсс Ρ‚Π°ΠΊΠΎΠ²: git stash save name of save git stash pop Π·Π°Ρ‚Π΅ΠΌ: git stash list (and…

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash drop

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash drop ? Оба ΡƒΠ±ΠΈΡ€Π°ΡŽΡ‚ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Ρ‚ΠΎΠ³Π΄Π° Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΅Ρ‰Π΅?

Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ git stash pop с сухим запуском?

git stash pop слСпо пСрСзаписываСт Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΈΡ… с Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ измСнСниями? Если ΠΎΠ½ сливаСтся, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния. Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ способ Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ,…

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash apply ΠΈ git stash apply —index?

Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ git stash apply ΠΈ git stash apply —index послС выполнСния git stash -a , я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ WIP ΠΈΠΌΠ΅Π΅Ρ‚ поэтапныС измСнСния,. ..

git stash pop/ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ индСксу Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ индСкс

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π΅ΡΡ‚ΡŒ история Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: stash@{0}: WIP on dev: stash@{1}: WIP on master: stash@{2}: WIP on dev: stash@{3}: WIP on master: Π― Ρ…ΠΎΡ‡Ρƒ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ сцСнарий: Git…

Git Stash – Zencoder

Git Stash

Π― прямо влюбился Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ stash ΠΎΡ‚ git

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

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

git stash save "description of stash"

… ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ stash с чСловСкопонятным описаниСм этого stash — Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ‡Π΅Ρ€Π΅Π· дСнь, глядя Π½Π° Π½Π΅Π³ΠΎ, Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ Π²ΠΎΠΎΠ±Ρ‰Π΅, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΎ дСлалось.

git stash -u save "description of stash"

… ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ stash с измСнСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ unstaged. Π˜Π½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ просто Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² снимок stash.

git stash branch newAwesomeBranch

… созданиС Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· stash@{0}. Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ — Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния ΠΏΠΎΠΏΠ°Π»ΠΈ с Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² stash@{0}.

git stash branch newAwesomeBranch stash@{1}

… ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· ΠΊΠΎΠ½ΠΊΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ stash@{1} Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ newAwesomeBranch.

git stash -p

… Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ΅ сохранСниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². ЗапускаСтся ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ мастСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ — ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² stash ΠΈΠ»ΠΈ Π½Π΅Ρ‚.

Показ сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git stash show

… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ справка, которая просто ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Π³Π΄Π΅ Π±Ρ‹Π»ΠΈ измСнСния ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ….

git stash show stash@{1}

… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ измСнСния Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ stash.

git stash show -p stash@{1}

… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ измСнСния Π² Ρ„Π°ΠΉΠ»Π΅. МоТно ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ.

git stash list

… ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ список всСх снимков stash. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, снимок с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ stash@{0} — это самый послСдний ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ снимок stash. Π”Π°Π»ΡŒΡˆΠ΅ — ΠΏΠΎΠ½Π°Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ — Ρ‡Π΅ΠΌ большС Π½ΠΎΠΌΠ΅Ρ€, Ρ‚Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ Π±Ρ‹Π» сдСлан.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ сохранСнных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

git stash drop stash@{1}

… ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ снимок stash@{1}.

git stash drop

… ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ послСдний снимок stash@{0}.

git stash clear

… ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС измСнСния stash.

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

git stash apply

… ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСдний ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ снимок stash.

git stash apply stash@{2}

… ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ снимок stash.

git stash pop

… сокрСщСниС ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ — apply ΠΈ drop — примСняСт ΠΈ автоматичСски удаляСт послС примСнСния послСдний снимок stashstash@{0}.

git stash pop stash@{2}

… сокрСщСниС ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ — apply ΠΈ drop — примСняСт ΠΈ автоматичСски удаляСт послС примСнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ снимок stashstash@{2}.

stashgit

Как ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ кошСлька? — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π£ мСня Π΅ΡΡ‚ΡŒ нСбольшой ΠΏΠ°Ρ‚Ρ‡, сохранСнный Π² ΠΌΠΎΠ΅ΠΌ тэгС git. Π― ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» Π΅Π³ΠΎ ΠΊ ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git stash apply. Π’Π΅ΠΏΠ΅Ρ€ΡŒ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ эти измСнСния, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΊ ΠΏΠ°Ρ‚Ρ‡Ρƒ (Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ git revert Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ² кошСлька).

ΠšΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π£Ρ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅: Π’ ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния. Мой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ случай Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТится Π² кошСлькС. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ смСшался Π² ΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ измСнСниями, ΠΈ я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ эффСкт с измСнСниями ΠΈ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· приставки.

Π­Ρ‚ΠΎ Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² настоящСС врСмя поддСрТиваСтся stash, Π½ΠΎ git stash apply --reverse — Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ функция.

ΠžΠ’Π’Π•Π’Π«

ΠžΡ‚Π²Π΅Ρ‚ 1

Π’ соотвСтствии с git -stash manpage, «Stash прСдставлСн ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚, Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ записываСт состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΈ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ — это фиксация Π² HEAD ΠΏΡ€ΠΈ создании stash», Π° git stash show -p Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ» измСнСния, записанныС Π² stash, ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ сохранСнным состояниСм ΠΈ исходным Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash show -p | patch --reverse, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:

$ git init
Initialized empty Git repository in /tmp/repo/. git/

$ echo Hello, world >messages

$ git add messages

$ git commit -am 'Initial commit'
[master (root-commit)]: created 1ff2478: "Initial commit"
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 messages

$ echo Hello again >>messages

$ git stash

$ git status
# On branch master
nothing to commit (working directory clean)

$ git stash apply
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   messages
#
no changes added to commit (use "git add" and/or "git commit -a")

$ echo Howdy all >>messages

$ git diff
diff --git a/messages b/messages
index a5c1966..eade523 100644
--- a/messages
+++ b/messages
@@ -1 +1,3 @@
 Hello, world
+Hello again
+Howdy all

$ git stash show -p | patch --reverse
patching file messages
Hunk #1 succeeded at 1 with fuzz 1.

$ git diff
diff --git a/messages b/messages
index a5c1966. .364fc91 100644
--- a/messages
+++ b/messages
@@ -1 +1,2 @@
 Hello, world
+Howdy all

Edit:

Π›ΡƒΡ‡ΡˆΠΈΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ этого являСтся использованиС git apply вмСсто ΠΏΠ°Ρ‚Ρ‡Π°:

git stash show -p | git apply --reverse

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git apply -R ΠΊΠ°ΠΊ сокращСнноС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ git apply --reverse.

Π’ послСднСС врСмя я ΡΡ‡ΠΈΡ‚Π°ΡŽ это ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ…

ΠžΡ‚Π²Π΅Ρ‚ 2

git stash [save] Π±Π΅Ρ€Π΅Ρ‚ вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ вашС состояниС индСкса ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΡ…, устанавливая индСкс ΠΈ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для HEAD вСрсия.

git stash apply Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ эти измСнСния, поэтому git reset --hard ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΈΡ… снова.

git stash pop Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ эти измСнСния ΠΈ удаляСт Π²Π΅Ρ€Ρ…Π½Π΅Π΅ спрятанноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, поэтому git stash [save] вСрнСтся Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ (pre-pop) состояниС Π² этом случаС.

ΠžΡ‚Π²Π΅Ρ‚ 3
git checkout -f

ΡƒΠ΄Π°Π»ΠΈΡ‚ Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π±Π΅Π· фиксации.

ΠžΡ‚Π²Π΅Ρ‚ 4

ΠŸΡ€ΡΠΌΠ°Ρ Π½Π°Ρ€Π΅Π·ΠΊΠ° с пасты git
Он Ρ‡Π΅Ρ‚ΠΊΠΎ сформулирован ΠΈ Π΄Π°ΠΆΠ΅ содСрТит псСвдоним;

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

$ git stash show -p [emailΒ protected]{0} | git apply -R

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ stash, Git ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ самый послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

$ git stash show -p | git apply -R

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним ΠΈ эффСктивно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ stash-unapply ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Git. НапримСр:

$ git config --global alias. stash-unapply '!git stash show -p | git apply -R'
$ git stash apply
$ #... work work work
$ git stash-unapply
ΠžΡ‚Π²Π΅Ρ‚ 5

Π­Ρ‚ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя, Π½ΠΎ Ссли я ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ понимаю ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, я нашСл простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это объяснСниС ΠΏΠΎ ΠΌΠΎΠ΅ΠΉ собствСнной Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

git stash [save] сохранит Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния ΠΈ установит Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π² «Ρ‡ΠΈΡΡ‚ΠΎΠ΅ состояниС»

git stash list Π΄Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅: [emailΒ protected]{0}: On develop: saved testing-stuff

git apply [emailΒ protected]{0} установит Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΊΠ°ΠΊ Π΄ΠΎ stash [save]

git checkout . УстанавливаСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ‚Π²ΡŒ ΠΊΠ°ΠΊ послС stash [save]

Код, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСтся Π² кошСлькС, Π½Π΅ тСряСтся, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π· git apply [emailΒ protected]{0}.

Anywhay, это сработало для мСня!

ΠžΡ‚Π²Π΅Ρ‚ 6

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΡ‚Π²Π΅Ρ‚Ρƒ @Greg Bacon, Ссли Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² индСкс ΠΈ Π±Ρ‹Π»ΠΈ Ρ‡Π°ΡΡ‚ΡŒΡŽ приставки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ

git stash show -p | git apply --reverse

ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ

error: cannot apply binary patch to '<YOUR_NEW_FILE>' without full index line
error: <YOUR_NEW_FILE>: patch does not apply

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ --binary устраняСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½ΠΎ, ΠΊ соТалСнию, ΠΏΠΎΠΊΠ° Π½Π΅ выяснСно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

 git stash show -p --binary | git apply --reverse

ΠŸΡ€ΡΡ‚Π°Π½ΡŒΠ΅ | Pro Git | Π Π΅Ρ†Π΅ΠΏΡ‚Ρ‹ Linux

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ такая ситуация, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Ρ‡Π°ΡΡ‚ΡŒΡŽ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, всё находится Π² бСспорядочном состоянии, Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π΄ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² это ΠΆΠ΅ состояниС. ΠžΡ‚Π²Π΅Ρ‚ Π½Π° эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash.

ΠŸΡ€ΡΡ‚Π°Π½ΡŒΠ΅ ΠΏΠΎΠ³Π»ΠΎΡ‰Π°Π΅Ρ‚ грязноС состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ измСнСния Π² индСксС, ΠΈ сохраняСт ΠΈΡ… Π² стСк Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π² любоС врСмя ΠΌΠΎΠΆΠ΅Ρ‚Π΅ снова ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

ΠŸΡ€ΡΡ‚Π°Π½ΡŒΠ΅ своих Ρ‚Ρ€ΡƒΠ΄ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΠ΄Ρ‘Ρ‚Π΅ ΠΊ своСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ ΠΏΠ°Ρ€ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, добавляСтС Π² индСкс ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git status, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ грязноС состояниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:


$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD . .." to unstage)
#
# modified: index.html
#
# Changed but not updated:
# (use "git add ..." to update what will be committed)
#
# modified: lib/simplegit.rb
#

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ, Π½ΠΎ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ с Ρ‚Π΅ΠΌ, Π½Π°Π΄ Ρ‡Π΅ΠΌ Π²Ρ‹ Π΅Ρ‰Ρ‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅; Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ прячСтС эти измСнСния. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ β€œΠ·Π°Π½Π°Ρ‡ΠΊΡƒβ€, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git stash:


$ git stash
Saved working directory and index state \
"WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
(To restore them type "git stash apply")

Π’Π°Ρˆ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ чист:


$ git status
# On branch master
nothing to commit (working directory clean)

Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Ρ‘; ваши измСнСния сохранСны Π² стСкС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ припрятанного, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash list:


$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051. .. Revert "added file_size"
stash@{2}: WIP on master: 21d80a5... added number to log

Π’ нашСм случаС, Π΄Π²Π΅ β€œΠ·Π°Π½Π°Ρ‡ΠΊΠΈβ€ Π±Ρ‹Π»ΠΈ сдСланы Ρ€Π°Π½Π΅Π΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρƒ вас Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… припрятанных Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ снова ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ спрятали, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² справкС Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ stash: git stash apply. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· старых Π·Π°Π½Π°Ρ‡Π΅ΠΊ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΡƒΠΊΠ°Π·Π°Π² Π΅Ρ‘ имя Ρ‚Π°ΠΊ: git stash apply stash@{2}. Если Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ, Git Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ послСднюю ΡΠΏΡ€ΡΡ‚Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ:


$ git stash apply
# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
#
# modified: index.html
# modified: lib/simplegit.rb
#

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Git восстановил измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΠ»ΠΈ, ΠΊΠΎΠ³Π΄Π° использовали ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ stash. Π’ нашСм случаС, Ρƒ вас Π±Ρ‹Π» чистый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ восстанавливали спрятанныС измСнСния, ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π²Ρ‹ Π΄Π΅Π»Π°Π»ΠΈ это Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ‚ΠΊΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π²ΠΎ врСмя ΠΏΡ€ΡΡ‚Π°Π½ΡŒΡ. Но Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ чистого Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ Π²Π΅Ρ‚ΠΊΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ для git stash apply. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ измСнСния Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ измСнСния. Π£ вас Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅Π΄ΠΎΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π²ΠΎ врСмя примСнСния спрятанного β€” Git выдаст Π²Π°ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ слияния, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ чисто.

ИзмСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π±Ρ‹Π»ΠΈ восстановлСны, Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π² индСксС β€” Π½Π΅Ρ‚. Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ git stash apply с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ --index, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° попытаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² индСксС. Если Π±Ρ‹ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Ρ‚Π°ΠΊ, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π±Ρ‹ исходноС состояниС:


$ git stash apply --index
# On branch master
# Changes to be committed:
# (use "git reset HEAD ..." to unstage)
#
# modified: index.html
#
# Changed but not updated:
# (use "git add ..." to update what will be committed)
#
# modified: lib/simplegit. rb
#

Всё Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ опция apply это пытаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΏΡ€ΡΡ‚Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ β€” Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ спрятали, всё Π΅Ρ‰Ρ‘ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² стСкС. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ спрятанноС, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ git stash drop с ΠΈΠΌΠ΅Π½Π΅ΠΌ β€œΠ·Π°Π½Π°Ρ‡ΠΊΠΈβ€, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ:


$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051... Revert "added file_size"
stash@{2}: WIP on master: 21d80a5... added number to log
$ git stash drop stash@{0}
Dropped stash@{0} (364e91f3f268f0900bc3ee613f9f733e82aaed43)

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

ΠžΡ‚ΠΊΠ°Ρ‚ примСнСния спрятанных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сцСнариях использования, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ спрятанныС измСнСния, ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, внСсённыС ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ stash apply. Git Π½Π΅ прСдоставляСт ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ stash unapply, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ эффСкта ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² сначала ΠΏΠ°Ρ‚Ρ‡ для спрятанных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅Π²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅:


$ git stash show -p stash@{0} | git apply -R

Π‘Π½ΠΎΠ²Π°, Ссли Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для stash, Git ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ спрятано послСдним:


$ git stash show -p | git apply -R

Если Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, сдСлайтС псСвдоним ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² свой git ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ stash-unapply. НапримСр, Ρ‚Π°ΠΊ:


$ git config --global alias.stash-unapply '!git stash show -p | git apply -R'
$ git stash
$ #... work work work
$ git stash-unapply

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠ· спрятанных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

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


$ git stash branch testchanges
Switched to a new branch "testchanges"
# On branch testchanges
# Changes to be committed:
# (use "git reset HEAD . .." to unstage)
#
# modified: index.html
#
# Changed but not updated:
# (use "git add ..." to update what will be committed)
#
# modified: lib/simplegit.rb
#
Dropped refs/stash@{0} (f0dfc4d5dc332d1cee34a634182e168c4efc3359)

Π­Ρ‚ΠΎ сокращСниС ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π½Π΅ΠΉ Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

Pro Git

Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сохранСнныС нСзафиксированныС измСнСния

простой ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° простой вопрос

git stash apply

просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти измСнСния, Π° Π·Π°Ρ‚Π΅ΠΌ git stash apply. Π’ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git diff Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ всС сдСлали с вашими измСнСниями —apply выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΈ Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π°ΠΉΠ½ΠΈΠΊ-Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash drop, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

я всСгда ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash apply, Π° Π½Π΅ git stash pop. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ apply оставляСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π²ΠΎΠΊΡ€ΡƒΠ³ для Π»Π΅Π³ΠΊΠΎΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ apply, ΠΈΠ»ΠΈ для ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, etc. Если pop способСн ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ drop это, ΠΈ Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΅Π³ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅ (Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅), ΠΈΠ»ΠΈ с --index ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² этом Ρ€ΠΎΠ΄Π΅, это Π½Π΅ Ρ‚Π°ΠΊ просто. Если Π²Ρ‹ apply,Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° drop.

это всС довольно Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, хотя, ΠΈ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° git, это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΡ‚ ΠΆΠ΅. (И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅!)


Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС Π²Π΅Ρ‰ΠΈ?

Π΅ΡΡ‚ΡŒ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… «ΡΠΏΠΎΡΠΎΠ±Π° использования git stash», ΠΊΠ°ΠΊ это Π±Ρ‹Π»ΠΎ. Π’Ρ‹ΡˆΠ΅ для «ΠΏΡƒΡ‚ΠΈ 1», «Π»Π΅Π³ΠΊΠΈΠΉ ΠΏΡƒΡ‚ΡŒ»:

  1. Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ с чистой Π²Π΅Ρ‚Π²ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ измСнСниями, Π° Π·Π°Ρ‚Π΅ΠΌ поняли, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΈΡ… Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ. Π’Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас Π΅ΡΡ‚ΡŒ сСйчас ΠΈ «ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ» ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

    это простой случай, описанный Π²Ρ‹ΡˆΠ΅. Π‘Π΅Π³ΠΈ git stash save (ΠΈΠ»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ git stash, Ρ‚ΠΎ ΠΆΠ΅ самоС). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash apply. Π­Ρ‚ΠΎ заставляСт git ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Π²Π°ΡˆΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… измСнСниях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ довольно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ слияния git. Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (с git diff) Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, нравятся Π»ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΌ, ΠΈ Ссли Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash drop ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Π·Π°Π½Π°Ρ‡ΠΊΡƒ. ВсС ΠΊΠΎΠ½Ρ‡Π΅Π½ΠΎ!

  2. Π²Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния ΠΈ спрятали ΠΈΡ…. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π½Π°Ρ‡Π°Π»ΠΈ большС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π·Π°Π±Ρ‹Π², Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ припрятанныС.

    Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡˆΠ΅Π²Π΅Π»ΠΈΡ‚ΡŒΡΡ, эти измСнСния ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ свой Π·Π°Π½Π°Ρ‡ΠΊΡƒ.

    Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ git stash save ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΊΠ°ΠΊ git stash Π΄Π΅Π»Π°Π΅Ρ‚ «ΡΡ‚Π΅ΠΊ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если Π²Ρ‹ это сдСлаСтС, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΎΠ΄ΠΈΠ½ просто называСтся stash-Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ stash@{0}-ΠΈ ΠΎΠ΄Π½Π° прописана stash@{1}. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash list (Π² любоС врСмя) Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡ… всСх. Π‘Π°ΠΌΡ‹ΠΉ Новый всСгда ΠΈΠΌΠ΅Π΅Ρ‚ самый Π½ΠΈΠ·ΠΊΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€. Когда Ρ‚Ρ‹ git stash drop, ΠΎΠ½ ΠΏΠ°Π΄Π°Π΅Ρ‚ самый Π½ΠΎΠ²Ρ‹ΠΉ, ΠΈ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» stash@{1} пСрСмСщаСтся Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ стСка. Если Π±Ρ‹ Ρƒ вас Π±Ρ‹Π»ΠΎ Π΅Ρ‰Π΅ большС, Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» stash@{2} становится stash@{1} ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

    Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ apply Π° Ρ‚ΠΎ drop ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Ρ‚ΠΎΠΆΠ΅:git stash apply stash@{2} ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠžΡ‚Π±Ρ€ΠΎΡΠΈΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ высокий Π½ΠΎΠΌΠ΅Ρ€. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΠ΄ΠΈΠ½ Π±Π΅Π· числа Ρ‚Π°ΠΊΠΆΠ΅ stash@{0}.

    Ссли Π²Ρ‹ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ довольно грязным (Π±Ρ‹Π» Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‚Π΅Π» stash@{7} ΠΈΠ»ΠΈ stash@{4}? ПодоТди, я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Π» Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ 8 ΠΈ 5?). Π― Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ пСрСнСсти эти измСнСния Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π°, ΠΈ cleanup-attempt-in-December Π·Π½Π°Ρ‡ΠΈΡ‚ для мСня Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ stash@{12}. (Π’Π΅Π³ git stash ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС сохранСния, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, всС ΠΌΠΎΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ просто Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ WIP on branch.)

  3. (Экстра-ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ) Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ git stash save -p, ΠΈΠ»ΠΈ git add — ed ΠΈ / ΠΈΠ»ΠΈ git rm — ed ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ вашСго ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ запуском git stash save. Π£ вас Π±Ρ‹Π»Π° ΠΎΠ΄Π½Π° вСрсия Π² скрытом индСксС/ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области, Π° другая (другая) вСрсия Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅. Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС это. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash apply --index, ΠΈ это ΠΈΠ½ΠΎΠ³Π΄Π° Ρ‚Π΅Ρ€ΠΏΠΈΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ с:

    Conflicts in index.  Try without --index.
    
  4. Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash save --keep-index для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ «Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΎ». Π­Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этого ΠΎΡ‚Π²Π΅Ρ‚Π°; см. этот Π΄Ρ€ΡƒΠ³ΠΈΡ… сайтС StackOverflow ΠΎΡ‚Π²Π΅Ρ‚ вмСсто.

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

git status               # see if there's anything you need to commit
                         # uh oh, there is - let's put it on a new temp branch
git checkout -b temp     # create new temp branch to save stuff
git add ...              # add (and/or remove) stuff as needed
git commit               # save first set of changes

Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π½Π°» чистой » ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅. Или, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это большС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° это:

git status               # see if there's anything you need to commit
                         # status says "nothing to commit"
git checkout -b temp     # optional: create new branch for "apply"
git stash apply          # apply stashed changes; see below about --index

Π² Π³Π»Π°Π²Π½ΠΎΠ΅, ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ «Π·Π°Π½Π°Ρ‡ΠΊΠ°» ΠΈ фиксация, это просто Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ «ΡΠΌΠ΅ΡˆΠ½Π°Ρ/странная» фиксация, которая Π½Π΅ «Π½Π° Π²Π΅Ρ‚ΠΊΠ΅». Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ apply опСрация смотрит Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ фиксация измСнилась, ΠΈ пытаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ, Π³Π΄Π΅ Π±Ρ‹ Π²Ρ‹ сСйчас Π½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ. Π’Π°ΠΉΠ½ΠΈΠΊ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΌ (apply Π΄Π΅Ρ€ΠΆΠΈΡ‚ Π΅Π³ΠΎ Π²ΠΎΠΊΡ€ΡƒΠ³), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ большС, ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π±Ρ‹Π»ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ мСсто для apply это ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.


Π² любоС врСмя Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash show -p Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅. (Π­Ρ‚Π° упрощСнная вСрсия смотрит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° измСнСния «final work tree»,Π½Π΅ сохранСнный индСкс измСняСт это --index восстанавливаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.) Команда git stash apply, Π±Π΅Π· --index, просто пытаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ эти Ρ‚ΠΎ ΠΆΠ΅ самоС измСнСния Π² вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ сСйчас.

это Π²Π΅Ρ€Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ apply ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

git stash apply stash      # apply top of stash stack
git stash apply stash@{1}  # and mix in next stash stack entry too

Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ порядок «ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ» здСсь, выбирая ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ для примСнСния Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² основном Π΄Π΅Π»Π°Π΅Ρ‚Π΅ «ΡΠ»ΠΈΡΠ½ΠΈΠ΅ git», ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ докумСнтация слияния:

выполняСтся слияниС git с Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ нСзафиксированными измСнСниями
обСскураТСнный: хотя это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вас Π² состоянии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ
Π½Π°Π·Π°Π΄ Π² случаС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

Ссли Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ с чистого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ просто Π΄Π΅Π»Π°ΡŽΡ‚ нСсколько git apply ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, это Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset --hard, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² исходноС состояниС, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свой apply ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. (Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π½Π°Ρ‡Π°Ρ‚ΡŒ с чистого Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° сначала, для этих слоТных случаСв. )


ΠΊΠ°ΠΊ насчСт самого Ρ…ΡƒΠ΄ΡˆΠ΅Π³ΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… случаСв?

Допустим Ρ‚Ρ‹ дСлая ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ Git, ΠΈ Π²Ρ‹ сдСлали Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ git stash apply --index, Π½ΠΎ это большС Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сохранСнный Ρ‚Π°ΠΉΠ½ΠΈΠΊ с --index, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° слишком сильно Ρ€Π°Π·ΠΎΡˆΠ»Π°ΡΡŒ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ Π²Ρ‹ Π΅Π΅ сохранили.

это git stash branch для.

Ссли Π²Ρ‹:

  1. ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ фиксации Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сдСлали ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» stash, ΠΏΠΎΡ‚ΠΎΠΌ
  2. ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†-Ρ‚ΠΎ
  3. git stash apply --index

ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ измСнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ git stash branch newbranch Π΄Π΅Π»Π°Π΅Ρ‚. (И Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ сбрасываСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½.)


нСсколько послСдних слов ΠΎ

--index (Ρ‡Ρ‚ΠΎ это Π·Π° Ρ‡Π΅Ρ€Ρ‚ΠΎΠ²Ρ‰ΠΈΠ½Π°?)

ΠΊΠ°ΠΊΠΎΠ³ΠΎ --index Π΄Π΅Π»Π°Π΅Ρ‚ это просто ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТно Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅:

  • ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ измСнСния, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ git add (ΠΈΠ»ΠΈ «ΡΡ‚Π°ΠΏ») ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄ commiting.
  • Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» ΠΎΠ±Π° Ρ„Π°ΠΉΠ»Π° foo ΠΈ zorg, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поставил ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ….
  • поэтому, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ проситС Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ это git addс add Π­Π΄ Π²Π΅Ρ‰ΠΈ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π΅git add Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π²Π΅Ρ‰ΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ addΠ­Π΄ foo Π° Π½Π΅ zorg ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ сдСлали stash, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ установку. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ поставлСно, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ снова поставлСно; Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π½ΠΎ Π½Π΅ поставлСно, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ снова ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π½ΠΎ Π½Π΅ поставлСно.

The --index Ρ„Π»Π°Π³ apply пытаСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ чисто, это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Если ваша Ρ€Π°Π±ΠΎΡ‚Π°-Π΄Π΅Ρ€Π΅Π²ΠΎ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ addΠ­Π΄, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ здСсь ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Если Π²Ρ‹ оставитС --index Π½Π° apply опСрация Π½Π΅ пытаСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ поэтапная / нСустановлСнная настройка. ВмСсто этого ΠΎΠ½ просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ слияния git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° Π² «Π·Π°Π½Π°Ρ‡ΠΊΠ° сумка». Если Π²Ρ‹ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎ сохранСнии staged / unstaged, оставляя--index Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ для git stash apply Π΄Π΅Π»Π°Ρ‚ΡŒ своС Π΄Π΅Π»ΠΎ.

Как внСсти измСнСния Π² Git Stash — devconnected

Команда git stash , вСроятно, ΠΎΠ΄Π½Π° ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² Git.

Git stash ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС измСнСния, сдСланныС Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ , ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ послСднСй фиксации, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Π² Π²Π΅Ρ‚ΠΊΠ΅ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ HEAD).

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ поставляСтся со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ Git, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для создания , удалСния ΠΈ примСнСния Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΏΠΎ ТСланию.

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… git stash ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² практичСских случаях.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Git

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ git stash — просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git stashΒ» Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

  $ git stash  

Как слСдствиС, всС измСнСния, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Π΅ для фиксации Π² вашСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π±ΡƒΠ΄ΡƒΡ‚ сохранСны для дальнСйшСго использования.

  $ git stash
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ 2: 808b598 ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация  

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΉ индСкс Π±Ρ‹Π»ΠΈ сохранСны для Β«Π²Π΅Ρ‚ΠΊΠΈ2Β», которая являСтся Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠΎΠ΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ.

ПослС Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ…ΡΡˆ фиксации HEAD , Π° Ρ‚Π°ΠΊΠΆΠ΅ сообщСниС фиксации: это имя вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

Π’ этом случаС Π½Π°ΡˆΠ΅ΠΌΡƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΡƒ Π½Π΅ Π±Ρ‹Π»ΠΎ присвоСно Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΈΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свой Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΏΠΎΠ·ΠΆΠ΅.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Git с ΠΈΠΌΠ΅Π½Π΅ΠΌ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ git stash с ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«saveΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ имя вашСго stash.

  $ git stash save "my_stash_name"  

ВСрнСмся ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ Ρ€Π°Π½Π΅Π΅ для Π²Π΅Ρ‚ΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«branch2Β», ΠΌΡ‹ Π±Ρ‹ запустили

  $ git stash save "ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ README.ΠΌΠΊΡ€ "
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса На Π²Π΅Ρ‚ΠΊΠ΅ 2: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ README.md  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Git Π½Π΅ прСдоставил имя ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (созданноС послСдним сообщСниСм фиксации HEAD), Π½ΠΎ присвоил Π΅ΠΌΡƒ собствСнноС имя.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash push Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ с ΠΈΠΌΠ΅Π½Π΅ΠΌ.

  $ git stash push -m "снова измСнил README.md"
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса На Π²Π΅Ρ‚ΠΊΠ΅ 2: снова ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ READ.me  

Π£Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π²Ρ‹ помСстили всС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git stash pushΒ» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

  $ git stash push -m "сообщСниС" <Ρ„Π°ΠΉΠ»>  

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Β«README.mdΒ» Π² нашСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния, внСсСнныС Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

  $ git stash push -m "ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» README.ΠΌΠΊΡ€ "README.md
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса На Π²Π΅Ρ‚ΠΊΠ΅ 2: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ README.md  

Однако Π΄Ρ€ΡƒΠ³ΠΈΠ΅ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π² вашСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ΠΌΠΈ.

Π’Π°ΠΉΠ½ΠΈΠΊ с нСотслСТиваСмыми Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

Как Π²Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΡ€ΠΈ создании Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°.

Но Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ вашСго Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β« –include-untracked Β» Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash Β».

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β« -u Β», Ρ‡Ρ‚ΠΎ эквивалСнтно Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΠ½Π½ΠΎΠΉ вСрсии Π±Π΅Π· отслСТивания.

  $ git stash --include-untracked
Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ состояниС индСкса WIP Π² branch2: 808b598 ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация

$ git stash -u  

Π’Π°ΠΉΠ½ΠΈΠΊ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ваши Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ .

Допустим, Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π²Π΅Ρ‚ΠΊΠΎΠΉ Β« master Β» Π½Π°Π΄ модификациями, Π½ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ вашСй Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ конкрСтная Π²Π΅Ρ‚ΠΊΠ° для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β« git stash branch Β».

  $ git stash branch <имя_отрасли>

$ git stash branch  [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {stash_index}  

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния Π² Π²Π΅Ρ‚ΠΊΠ΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Π²Π΅Ρ‚ΠΊΠ°2Β», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ.

  $ git stash branch branch2 [Π·Π°Ρ‰ΠΈΡ‚Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {0}

ΠŸΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ branch2
Π’ Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ branch5
ИзмСнСния, Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для фиксации:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add <Ρ„Π°ΠΉΠ»>. .. "ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΎ)
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git checkout - <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅)

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

Π² Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add" ΠΈ / ΠΈΠ»ΠΈ "git commit -a")
Π£Π΄Π°Π»Π΅Π½ΠΎ [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {0} (8bf64dd0e0045069bf3b3e7d9e34f5e5227aefa7)  

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‚Π°ΠΉΠ½ΠΈΠΊ удаляСтся Π² ΠΊΠΎΠ½Ρ†Π΅ процСсса, ΠΏΠΎ сути, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ удаляя Π΅Π³ΠΎ ΠΈΠ· стСка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

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

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создали нСсколько Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданныС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ.

Для Π²Ρ‹Π²ΠΎΠ΄Π° списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² Git ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash list Β».

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

[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {0}: WIP Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ 2: 808b598 ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация
[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {1}: Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ 2: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ README.md
[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {2}: На Π²Π΅Ρ‚ΠΊΠ΅ 2: снова ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ READ.me  

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°ΠΌ присваиваСтся индСкс, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с нуля.

ΠŸΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² элСмСнты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² стСк, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ самый послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ индСкс 0, Π° самый старый Ρ‚Π°ΠΉΠ½ΠΈΠΊ находится Π²Π½ΠΈΠ·Ρƒ стСка.

Π­Ρ‚ΠΎ тСсно связано с ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ стСка Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Бсылка Π½Π° ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π°, Ссли Π²Π°ΠΌ интСрСсно ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ стСках.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Git

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сохранили свои Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Git сбоку, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ Β« Π²Ρ‹Π½ΡƒΡ‚ΡŒ ΠΈΡ… ΠΈΠ· стСка Β» ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ вашС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Git ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash apply Β» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ.

Если Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ apply, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π° стСка .

  $ git stash apply [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {stash_index}

$ git stash apply (ярлык для git stash apply [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {0})  

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния, сдСланныС Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ с индСксом 1, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

  $ git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ [элСктронная ΠΏΠΎΡ‡Ρ‚Π°] {1}

Π£ΠΆΠ΅ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии!
Π’ Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ branch2
Π’ вашСй Π²Π΅Ρ‚ΠΊΠ΅ установлСна ​​послСдняя вСрсия origin / branch2. ИзмСнСния, Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для фиксации:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано)
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git checkout - <Ρ„Π°ΠΉΠ»> ...", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅)

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

НС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ..." для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано)

        Ρ„Π°ΠΉΠ»  

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π° stash apply ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ ваш Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ послС примСнСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… stash.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π²Ρ‹ составитС список своих Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вашСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° Π½Π΅ удаляСт ΠΈ Π½Π΅ удаляСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· списка.

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

[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {0}: WIP Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ 2: 808b598 ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ фиксация
[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {1}: Π½Π° Π²Π΅Ρ‚ΠΊΠ΅ 2: ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ README.md
[элСктронная ΠΏΠΎΡ‡Ρ‚Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π°] {2}: На Π²Π΅Ρ‚ΠΊΠ΅ 2: снова ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ READ.me  

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ послС ΠΈΡ… примСнСния, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«git stash popΒ».

Pop Git Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ

Π˜Ρ‚Π°ΠΊ, Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ git stash pop ΠΈ git stash apply?

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Β«git stash popΒ» примСняСт ваши измСнСния ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ удаляСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· стСка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Git, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash pop Β» ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ индСкс Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ.

  $ git stash pop [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {stash_index}  

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, это даст Π½Π°ΠΌ

  $ git stash pop [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {1}

Π£ΠΆΠ΅ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии!
Π’ Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅ branch2
Π’ вашСй Π²Π΅Ρ‚ΠΊΠ΅ установлСна ​​послСдняя вСрсия origin / branch2.

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

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

НС отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:
  (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ "git add  ..." для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано)

        Ρ„Π°ΠΉΠ»

Π£Π΄Π°Π»Π΅Π½ΠΎ [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {1} (1adaf79224dca78aa6568b1e8154cbc4f747042f)  

Π’ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² послСднСй строкС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°?

Π’ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ Π±Ρ‹Π»ΠΎ , Π²Ρ‹ΠΏΠ°Π»ΠΎ , Π° ΡƒΠ΄Π°Π»ΠΈΠ»ΠΎ ΠΈΠ· стСка.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ различия Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ Git

Когда Π²Ρ‹ создаСтС Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΎΠ½, скорСС всСго, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ сохранСнному ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ.

Как слСдствиС, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΈΠ΄Π΅Π» различия ΠΌΠ΅ΠΆΠ΄Ρƒ вашим Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ ΠΈ самой послСднСй фиксациСй вашСй Π²Π΅Ρ‚ΠΊΠΈ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ HEAD)

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ ΠΈ самой послСднСй фиксациСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β« git stash show Β».

  $ git stash show [Π·Π°Ρ‰ΠΈΡ‚Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {stash_index}

README.md | 4 +++ -
1 Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½, 3 вставки (+), 1 ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ (-)  

Как слСдствиС, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ пСрСчислСны с различиями ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌΠΈ вставками ΠΈ удалСниями.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС различия, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ содСрТимоС , Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β« -p Β».

  $ git stash show -p [Π·Π°Ρ‰ΠΈΡ‚Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {stash_index}

diff --git a / README.md b / README.md
индСкс f25b874..1088f9a 100644
--- a / README.md
+++ b / README.md
@@ -1 +1,3 @@
- # ΠΏΡ€ΠΈΠ²Π°Ρ‚-Ρ€Π΅ΠΏΠΎ
\ НСт Π½ΠΎΠ²ΠΎΠΉ строки Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°
+ Π€Π°ΠΉΠ» Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½!  

Drop Git Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ запись Git stash ΠΈΠ· вашСго стСка.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°: с ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ .

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· своСго стСка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ удалСния ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ индСкс Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

  $ git stash drop [Π·Π°Ρ‰ΠΈΡ‚Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {stash_index}  

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ с индСксом 1 ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

  $ git stash drop [Π·Π°Ρ‰ΠΈΡ‚Π° элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹] {1}
Π£Π΄Π°Π»Π΅Π½ΠΎ [адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½] {1} (c11c6ae6c347d23dff8fbbf79d54a9e6e2e79b1c)  

ΠžΡ‚Π±Ρ€ΠΎΡΡŒΡ‚Π΅ всС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ clear

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Git Π² своСм стСкС, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ clear.

  $ git stash clear  

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС ваши Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ list.

  $ список хранСния git  

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом руководствС Π²Ρ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ git stash: ΠΊΠ°ΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ ΠΈ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π°ΡˆΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Git stash довольно ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ использовании Git:

Если вас интСрСсуСт программная инТСнСрия, Π½Π° нашСм Π²Π΅Π±-сайтС Π΅ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», посвящСнный этой Ρ‚Π΅ΠΌΠ΅, поэтому ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π½ΠΈΠΌ!

git — Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ спрятанныС нСзафиксированныС измСнСния

ΠŸΡ€ΠΎΡΡ‚ΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° простой вопрос:

git stash apply

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π²Π΅Ρ‚ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти измСнСния, Π° Π·Π°Ρ‚Π΅ΠΌ git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ .Π—Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git diff , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния — apply выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΈ Π²Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Ρ‚Π°ΠΉΠ½ΠΈΠΊ — Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash drop , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π½Π΅Π³ΠΎ.

Π― всСгда ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash apply , Π° Π½Π΅ git stash pop . Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ apply оставляСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ для удобства ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ apply ΠΈΠ»ΠΈ для просмотра ΠΈ Ρ‚. Π”.Если pop ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΎΠ½ сразу ΠΆΠ΅ сбросит Π΅Π³ΠΎ, ΠΈ Ссли Π²Ρ‹ Π²Π΄Ρ€ΡƒΠ³ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ Π΅Π³ΠΎ Π³Π΄Π΅-Ρ‚ΠΎ Π΅Ρ‰Π΅ (Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅), ΠΈΠ»ΠΈ с --index , ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΈΠ΅, это Π½Π΅ Ρ‚Π°ΠΊ просто. Если Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ , Π²Ρ‹ смоТСтС Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ .

Π­Ρ‚ΠΎ всС довольно Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, ΠΈ для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π² git это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅. (А всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ!)


Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС Π²Π΅Ρ‰ΠΈ?

БущСствуСт ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… «ΡΠΏΠΎΡΠΎΠ±Π° использования git stash».Π’Ρ‹ΡˆΠ΅ для Β«ΠΏΡƒΡ‚ΠΈ 1Β», Β«Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈΒ»:

  1. Π’Ρ‹ Π½Π°Ρ‡Π°Π»ΠΈ с чистой Π²Π΅Ρ‚ΠΊΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ измСнСниями, Π° Π·Π°Ρ‚Π΅ΠΌ поняли, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΈΡ… Π½Π΅ Π² Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Π’Ρ‹ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π·ΡΡ‚ΡŒ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас Π΅ΡΡ‚ΡŒ сСйчас, ΠΈ Β«ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΒ» ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

    Π­Ρ‚ΠΎ простой случай, описанный Π²Ρ‹ΡˆΠ΅. ЗапуститС git stash save (ΠΈΠ»ΠΈ простой git stash , Ρ‚ΠΎ ΠΆΠ΅ самоС). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash apply . Π­Ρ‚ΠΎ заставляСт git ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ с вашими ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ измСнСниями, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ довольно ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ слияния git. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git diff ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, нравятся Π»ΠΈ ΠΎΠ½ΠΈ Π²Π°ΠΌ, ΠΈ, Ссли Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash drop , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ. Π“ΠΎΡ‚ΠΎΠ²ΠΎ!

  2. Π’Ρ‹ внСсли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния ΠΈ сохранили ΠΈΡ…. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ Π½Π°Ρ‡Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСнСния, Π·Π°Π±Ρ‹Π², Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ спрятанныС.

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ эти измСнСния , ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ваш Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

    ЀактичСски, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ снова ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ git stash, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ git stash создаСт «стСк» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Если Π²Ρ‹ это сдСлаСтС, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΎΠ΄ΠΈΠ½ просто называСтся Ρ‚Π°ΠΉΠ½ΠΈΠΊ - Π½ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0} - ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {1} . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash list (Π² любоС врСмя), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡ… всС. Π‘Π°ΠΌΡ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ всСгда ΠΈΠΌΠ΅Π΅Ρ‚ самый Π½ΠΈΠ·ΠΊΠΈΠΉ Π½ΠΎΠΌΠ΅Ρ€. Когда Π²Ρ‹ сбрасываСтС git stash , ΠΎΠ½ отбрасываСт самый Π½ΠΎΠ²Ρ‹ΠΉ, Π° Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» stash @ {1} , пСрСмСщаСтся Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. Если Ρƒ вас Π±Ρ‹Π»ΠΎ Π΅Ρ‰Π΅ большС, Ρ‚ΠΎ Ρ‚Π°, которая Π±Ρ‹Π»Π° stash @ {2} , стала stash @ {1} , ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ , Π° Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ: git stash apply stash @ {2} ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. ΠžΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΏΠ΅Ρ€Π΅Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ больший Π½ΠΎΠΌΠ΅Ρ€. ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½ΠΎΠΌΠ΅Ρ€ Π±Π΅Π· Π½ΠΎΠΌΠ΅Ρ€Π° - это Ρ‚Π°ΠΊΠΆΠ΅ stash @ {0} .

    Если Π²Ρ‹ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ довольно бСспорядочным (Π±Ρ‹Π» Π»ΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ…ΠΎΡ‚Π΅Π» Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {7} , ΠΈΠ»ΠΈ это Π±Ρ‹Π» Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {4} ? ΠŸΠΎΠ΄ΠΎΠΆΠ΄ΠΈΡ‚Π΅, я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Π» Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ 8 ΠΈ 5?). Π― Π»ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ пСрСнСсти эти измСнСния Π² Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Π²Π΅Ρ‚ΠΎΠΊ Π΅ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π°, Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° очистки Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ для мСня Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС, Ρ‡Π΅ΠΌ stash @ {12} .(Команда git stash ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС сохранСния, ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Π½ΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ всС ΠΌΠΎΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ просто Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ WIP Π² Π²Π΅Ρ‚ΠΊΠ΅ .)

  3. (Extra-advanced) Π’Ρ‹ использовали git stash save -p ΠΈΠ»ΠΈ остороТно git add -ed ΠΈ / ΠΈΠ»ΠΈ git rm -ed ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ вашСго ΠΊΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ запуском git stash save . Π£ вас Π±Ρ‹Π»Π° ΠΎΠ΄Π½Π° вСрсия Π² спрятанном индСксС / ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области, Π° другая (другая) вСрсия - Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅.Π’Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ всС это ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ. Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash apply --index , ΠΈ это ΠΈΠ½ΠΎΠ³Π΄Π° Π΄Π°Π΅Ρ‚ сбой:

      ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π² index. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π±Π΅Π· --index.
      
  4. Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ git stash save --keep-index , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Β«Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ зафиксировано». Π­Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этого ΠΎΡ‚Π²Π΅Ρ‚Π°; вмСсто этого см. этот Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚ StackOverflow.

Π’ слоТных случаях я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ сначала Π½Π°Ρ‡Π°Ρ‚ΡŒ с «чистого» Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, зафиксировав всС измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас Π΅ΡΡ‚ΡŒ сСйчас (Π² Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅).Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, "Π³Π΄Π΅-Ρ‚ΠΎ", Π³Π΄Π΅ Π²Ρ‹ ΠΈΡ… примСняСтС, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ большС Π½ΠΈΡ‡Π΅Π³ΠΎ, ΠΈ Π²Ρ‹ просто ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚Π΅ спрятанныС измСнСния:

  git status # посмотрим, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
                         # Π°Ρ…, Π΅ΡΡ‚ΡŒ - Π΄Π°Π²Π°ΠΉΡ‚Π΅ помСстим Π΅Π³ΠΎ Π² Π½ΠΎΠ²ΡƒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ
git checkout -b temp # ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для сохранСния
git add ... # добавляСм (ΠΈ / ΠΈΠ»ΠΈ удаляСм) Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ
git commit # ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π½Π° "чистой" ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅.Или, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, это выглядит Ρ‚Π°ΠΊ:

  git status # посмотрим, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
                         # статус Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ "Π½Π΅Ρ‡Π΅Π³ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ"
git checkout -b temp # Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ для Β«ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒΒ»
git stash apply # ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сохранСнныС измСнСния; см.  Π½ΠΈΠΆΠ΅ ΠΎ --index
  

Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Β«stashΒ» - это фиксация, это просто слСгка «забавная / странная» фиксация, которая Π½Π΅ находится Β«Π² Π²Π΅Ρ‚ΠΊΠ΅Β». ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ apply провСряСт, Ρ‡Ρ‚ΠΎ измСнилось Π² фиксации, ΠΈ пытаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π΅Π΅, Π³Π΄Π΅ Π±Ρ‹ Π²Ρ‹ Π½ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ.Π’Π°ΠΉΠ½ΠΈΠΊ всС Π΅Ρ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΌ ( apply сохраняСт Π΅Π³ΠΎ), Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅ ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚ΠΎ мСсто, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Ρ€Π°Π·, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅.


ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash show -p , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅. (Π­Ρ‚Π° упрощСнная вСрсия рассматриваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Β«ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°Β», , Π° Π½Π΅ , сохранСнныС измСнСния индСкса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ --index восстанавливаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.Команда git stash apply , Π±Π΅Π· --index , просто пытаСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ Ρ‚Π΅ ΠΆΠ΅ измСнСния Π² вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

Π­Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ, Π΄Π°ΠΆΠ΅ Ссли Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния. Команда apply с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ примСняСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ (ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, пытаСтся ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это:

  git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ # ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²Π΅Ρ€Ρ… стСка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°
git stash apply stash @ {1} # ΠΈ добавляйтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ запись стСка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°
  

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ порядок «примСнСния», Π²Ρ‹Π±Ρ€Π°Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π² основном выполняСтС Β«git mergeΒ», ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ докумСнтация слияния:

Запуск git merge с Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ нСзафиксированными измСнСниями
обСскураТСн: хотя это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ вас Π² тяТСлом состоянии
ΠΎΡ‚ΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ Π² случаС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

Если Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ с чистого ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ просто выполняСтС нСсколько ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ git apply , ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git reset --hard , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² чистоС состояниС, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ свой , ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ . (Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ сначала Π½Π°Ρ‡Π°Ρ‚ΡŒ с чистого Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для этих слоТных случаСв.)


А ΠΊΠ°ΠΊ насчСт самого Ρ…ΡƒΠ΄ΡˆΠ΅Π³ΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… случаСв?

Допустим, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ Git, создали Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ git stash --index , Π½ΠΎ ΡƒΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ сохранСнный Ρ‚Π°ΠΉΠ½ΠΈΠΊ с --index , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Π΅Ρ‚ΠΊΠ° слишком сильно Ρ€Π°Π·ΠΎΡˆΠ»Π°ΡΡŒ с Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠ°ΠΊ Π²Ρ‹ Π΅Π΅ сохранили.

Π­Ρ‚ΠΎ Ρ‚ΠΎ, для Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° Π²Π΅Ρ‚ΠΊΠ° git stash .

Если Π²Ρ‹:

  1. ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ , Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π±Ρ‹Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»Π°Π»ΠΈ исходный Ρ‚Π°ΠΉΠ½ΠΈΠΊ , Π·Π°Ρ‚Π΅ΠΌ
  2. ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†,
  3. git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ --index

ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²ΠΎΡΡΠΎΠ·Π΄Π°Ρ‚ΡŒ измСнСния ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ сработаСт. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ git stash branch newbranch . (И Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ сбрасываСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½.)


НСсколько Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… слов ΠΎ

--index (ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‡Π΅Ρ€Ρ‚Π°?)

Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ --index , просто ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, Π½ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТно:

  • Когда Ρƒ вас Π΅ΡΡ‚ΡŒ измСнСния, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ git Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ (ΠΈΠ»ΠΈ "этап") ΠΈΡ… Π΄ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ing.
  • Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ запускали git stash , Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° Ρ„Π°ΠΉΠ»Π° foo ΠΈ zorg , Π½ΠΎ поставили Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ….
  • Π˜Ρ‚Π°ΠΊ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ проситС Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, Ссли Π±Ρ‹ ΠΎΠ½ git Π΄ΠΎΠ±Π°Π²ΠΈΠ» s, Π΄ΠΎΠ±Π°Π²ΠΈΠ» ed Π²Π΅Ρ‰ΠΈ ΠΈ Π½Π΅ git Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ed foo , Π½ΠΎ Π½Π΅ zorg , ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ сдСлали stash , Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΡƒΡŽ ​​ТС настройку.Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ поставлСно, Π½ΡƒΠΆΠ½ΠΎ снова ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ; Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ, Π½ΠΎ Π½Π΅ поставлСно, слСдуСт снова ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, Π½ΠΎ Π½Π΅ постановку.

Π€Π»Π°Π³ --index для apply пытаСтся Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Π΅Ρ‰ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Если вашС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ чистоС, это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ просто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Если Π² вашСм Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ed, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ здСсь ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Если Π²Ρ‹ Π½Π΅ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ --index , опСрация apply Π½Π΅ попытаСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всю ΠΏΠΎΡΡ‚Π°ΠΏΠ½ΡƒΡŽ / Π½Π΅ΡΡ‚Π°ΠΏΠ½ΡƒΡŽ установку.ВмСсто этого ΠΎΠ½ просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ слияния git, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΈΠΊΡΠ°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° Π² «сумкС». Если Π²Ρ‹ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ΡΡŒ ΠΎ сохранСнии постановки / нСустановки, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ --index Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ упростит Ρ€Π°Π±ΠΎΡ‚Ρƒ с git stash apply .

Каков ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования git stash?

Π― знаю, Ρ‡Ρ‚ΠΎ StackOverflow - Π½Π΅ мСсто для ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², основанных Π½Π° мнСниях, Π½ΠΎ Π½Π° самом Π΄Π΅Π»Π΅ Ρƒ мСня Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

Π’Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния

Когда Π²Ρ‹ вноситС измСнСния Π² своС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ пространство / Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° основС Π²Π΅Ρ‚Π²Π΅ΠΉ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ слияниС, push, Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² чистой Ρ‚ΠΎΡ‡ΠΊΠ΅ фиксации.ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ измСнСния Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ пространствС, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡ… Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Но Ρ‡Ρ‚ΠΎ, Ссли Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡ… ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ? Π§Ρ‚ΠΎ, Ссли ΠΎΠ½ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅? Π§Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π² истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²? Π§Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚Π΅ Π½Π° GitHub?

Π’Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΏΡ€ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ сбросС

Π’ этом случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ сброс. Но Ссли Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ сброс, Π²Ρ‹ потСряСтС всС измСнСния вашСго локального Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ всС Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписано Π½Π° Ρ‚ΠΎ мСсто, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²ΠΎ врСмя послСднСй фиксации, ΠΈ Π²Ρ‹ потСряСтС всС свои измСнСния.

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ касаСтся ΠΎΡ‚Π²Π΅Ρ‚Π° Β«ΠΊΠΎΠ³Π΄Π° слСдуСт ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒΒ», Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ - ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ чистой Ρ‚ΠΎΡ‡ΠΊΠ΅ фиксации с синхронизированным Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ / индСксом / фиксациСй, Π½ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ свои Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² процСссС. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎΡ‚Π»ΠΎΠΆΠΈΡ‚Π΅ свои измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΈ всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

И послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ сдСлали свой Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π° Π·Π°Ρ‚Π΅ΠΌ слились, ΠΈΠ»ΠΈ потянули, ΠΈΠ»ΠΈ Π½Π°ΠΆΠ°Π»ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΏΡ€ΠΈΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ pop ΠΈΠ»ΠΈ apply, ΠΈ Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ Ρ‚ΡƒΠ΄Π°, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π½Π°Ρ‡Π°Π»ΠΈ.

Git stash ΠΈ GitHub

GitHub постоянно добавляСт Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅ΡΡ‚ΡŒ способ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊ.ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, идСя Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ частный. Никто Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ смоТСт Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² ваш Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π±Π΅Π· физичСского доступа ΠΊ вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ станции. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ git reflog являСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ, Π° ΠΆΡƒΡ€Π½Π°Π» git являСтся общСдоступным. ВСроятно, это Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΌ, Ссли Π±Ρ‹ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ пСрСнСсСно Π½Π° GitHub.

Один ΠΈΠ· ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² вашСй Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ git, Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ тягу ΠΈΠ· Π΄ΠΎΠΌΠ°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π» ΠΈ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°Π·ΠΌΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Но это довольно грязный способ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

  git diff> git-dif-file.diff
  

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ‚Ρ€ΡŽΠΊΠΈ ΠΎ Git stash

, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ

Π― запустил ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΡŒ Git Better, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ Git. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ свою ΠΈΠ³Ρ€Ρƒ Π² Git, Π²Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ стоит это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ.

Если Π²Ρ‹ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ врСмя использовали Git, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ использовали Git stash. Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Git.

Π’ΠΎΡ‚ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΡƒΠ·Π½Π°Π» ΠΎ Git stash Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅.

  1. Git stash save
  2. Git stash list
  3. Git stash apply
  4. Git stash pop
  5. Git stash show
  6. Git stash branch
  7. Git stash clear
  8. Git stash drop 9037 save

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Git stash. Но Ρƒ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ. Π― расскаТу ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΠΆΠ½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°Ρ… Π² этом постС.

    Git stash с сообщСниСм

      git stash save Β«Π’Π°ΡˆΠ΅ сСкрСтноС сообщСниС».  

    ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° помСщаСтся Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ с сообщСниСм. ΠœΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, насколько это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚.

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

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹.

      git stash save -u
    
    ΠΈΠ»ΠΈ ΠΆΠ΅
    
    git stash save --include-untracked  

    Git stash list

    ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΠΌΠ½Π΅ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΊΠΎΠ΅-Ρ‡Ρ‚ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ stash.

    Когда Π²Ρ‹ сохраняСтС Git stash ΠΈΠ»ΠΈ Git stash save, Git фактичСски создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ фиксации Git с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π° Π·Π°Ρ‚Π΅ΠΌ сохраняСт Π΅Π³ΠΎ Π² вашСм Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

    Π—Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список созданных Π²Π°ΠΌΠΈ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² Π² любоС врСмя.

      git stash list  

    Π‘ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½ΠΈΠΆΠ΅:

    git stash list example

    Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ список созданных Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². И послСдний сдСланный Ρ‚Π°ΠΉΠ½ΠΈΠΊ находится Π½Π°Π²Π΅Ρ€Ρ…Ρƒ.

    И Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ настраиваСмоС сообщСниС (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Git stash save Β«messageΒ»).

    Git stash apply

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±Π΅Ρ€Π΅Ρ‚ самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π² стСкС ΠΈ примСняСт Π΅Π³ΠΎ ΠΊ Ρ€Π΅ΠΏΠΎ. Π’ нашСм случаС это Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0}

    . Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

      git stash apply stash @ {1}  

    Git stash pop

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ stash apply, Π½ΠΎ послС примСнСния удаляСт Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· стСка.

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    Git stash pop example

    Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΡƒΠ΄Π°Π»Π΅Π½, Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0} ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ с использованиСм старого Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

    Аналогично, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ открывался ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

      git stash pop stash @ {1}  

    Git stash show

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ сводку Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅. Π’Ρ‹ΡˆΠ΅ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° рассматриваСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

    Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

    Git stash show example

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

      git stash show -p  

    Аналогично Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ stash, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сводка diff.

      git stash show stash @ {1}  

    Git stash branch me>

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

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

      git stash branch  stash @ {1}  

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

    Git stash clear

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт всС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ, сдСланныС Π² Ρ€Π΅ΠΏΠΎ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, это Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ.

    Git stash drop

    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° удаляСт послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· стСка. Но ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ слоТно Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

    Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ id Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.

      git stash drop stash @ {1}  

    НадСюсь, Ρƒ вас Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ‚Ρ€ΡŽΠΊΠΎΠ² с Git stash.

    Если Π²Ρ‹ зашли Ρ‚Π°ΠΊ Π΄Π°Π»Π΅ΠΊΠΎ, Ρ‚ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни заинтСрСсованы Π² Git.ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π±ΡŽΠ»Π»Π΅Ρ‚Π΅Π½ΡŒ Git Better, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ… ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅ΠΌΠ°Ρ… ΠΎ Git. πŸ™‚

    Если ΡΡ‚Π°Ρ‚ΡŒΡ Π²Π°ΠΌ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»Π°ΡΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΡ…Π»ΠΎΠΏΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Сю πŸ™‚ πŸ™‚

    Как Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния Π² Git

    Git ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ снимок Π²Π°ΡˆΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π΅ фиксируя ΠΈΡ… Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Он ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ области ΠΈΠ»ΠΈ рСпозитория.

    Π­Ρ‚Π° функция ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ внСсли измСнСния Π² Π²Π΅Ρ‚ΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ.

    ИзмСнСния Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

      git stash save Β«Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ сообщСниС для сСбя»  

    Π­Ρ‚ΠΎ сохранит ваши измСнСния ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊ ​​тому, ΠΊΠ°ΠΊ ΠΎΠ½ выглядСл Π² послСдний Ρ€Π°Π· ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π½Ρ‹Π΅ измСнСния доступны ΠΈΠ· любой Π²Π΅Ρ‚ΠΊΠΈ Π² этом Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

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

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

    Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ находится Π² вашСм Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

      git stash list  

    Π­Ρ‚ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список Π²Π°ΡˆΠΈΡ… сохранСнных снимков Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ stash @ {0}: BRANCH-STASHED- Π”Π›Π― Π˜Π—ΠœΠ•ΠΠ•ΠΠ˜Π™: Π‘ΠžΠžΠ‘Π©Π•ΠΠ˜Π• . Π§Π°ΡΡ‚ΡŒ stash @ {0} - это имя Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π° число Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках ( {} ) - это индСкс этого Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°. Если Ρƒ вас хранится нСсколько Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свой индСкс.

    Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния Π±Ρ‹Π»ΠΈ внСсСны Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡ… сводку с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git stash show NAME-OF-STASH .Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΌΠ°ΠΊΠ΅Ρ‚ ΠΏΠ°Ρ‚Ρ‡Π° Π² стилС diff (с + β€˜s ΠΈ-’ для построчных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ -p (for patch). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

      git stash show -p stash @ {0}
    
    # ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:
    diff --git a / PathToFile / fileA b / PathToFile / fileA
    индСкс 2417dd9..b2c9092 100644
    --- a / PathToFile / fileA
    +++ b / PathToFile / fileA
    @@ -1,4 +1,4 @@
    -Как выглядит эта линия Π½Π° Π²Π΅Ρ‚ΠΊΠ΅
    + Как выглядит эта строка с сохранСнными измСнСниями  

    ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сохранСнныС измСнСния

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ измСнСния ΠΈΠ· Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ, Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

    1. git stash apply STASH- NAME примСняСт измСнСния ΠΈ оставляСт копию Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅
    2. git stash pop STASH-NAME примСняСт измСнСния ΠΈ удаляСт Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

    ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ слиянию (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ см. git merge ).

    Π£Π΄Π°Π»ΠΈΡ‚ΡŒ сохранСнныС измСнСния

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

      git stash drop ИМЯ Π—ΠΠŸΠ˜Π‘Π˜  

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ вСсь Ρ‚Π°ΠΉΠ½ΠΈΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

      git stash clear  

    CSS {Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ}

    ΠŸΡ€ΠΈ манипуляциях с нСсколькими вСтвями Π² Git Π»Π΅Π³ΠΊΠΎ случайно Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ с Ρ‚ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΎΠΉ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ.Или ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ Π΅Ρ‰Π΅ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои измСнСния, ΠΊΠΎΠ³Π΄Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ просит вас ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΡΡ€ΠΎΡ‡Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΈ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ. Π—Π΄Π΅ΡΡŒ пригодится ΠΊΠΎΠΌΠ°Π½Π΄Π° Git stash .

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

    Stashing позволяСт Π½Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ копию Π½Π°ΡˆΠΈΡ… нСзафиксированных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅.

    Π’ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash создаСт запись Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ наши спрятанныС измСнСния ΠΏΠΎΠ·ΠΆΠ΅, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ git stash apply .

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

      git stash
      

    ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΊ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅:

      git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ
      

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ - это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΠ°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ создали Ρ‚Π°ΠΉΠ½ΠΈΠΊ.

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

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ git stash Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отслСТСнных Ρ„Π°ΠΉΠ»ΠΎΠ² . Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΡƒΡŽ нСотслСТиваСмых Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,Π³Ρ€Π°ΠΌΠΌ. Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹, ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² нашСм .gitignore ), ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ„Π»Π°Π³ -u (ΠΈΠ»ΠΈ --include-untracked ):

    Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:

      git stash -u
      

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹:

      git ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ -u
      

    НСсколько записСй Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅

    git stash apply ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ послСднюю ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΊ вашСй Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅. Но ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ нСсколько Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ git stash list . ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

      git список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²
    stash @ {0}: WIP Π² my-branch: ca96af0 Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ фиксации 3
    stash @ {1}: WIP Π² my-branch: 03af20c Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ фиксации 2
    stash @ {2}: WIP Π² my-branch: 216b662 Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ фиксации 1
    
      

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ WIP (Π Π°Π±ΠΎΡ‚Π° Π² процСссС), Π·Π° Π½ΠΈΠΌΠΈ слСдуСт Π²Π΅Ρ‚Π²ΡŒ ΠΈ фиксация, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»Π° создана запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько записСй Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ - Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ измСнСния ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ! ВмСсто этого ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ наш Ρ‚Π°ΠΉΠ½ΠΈΠΊ с настраиваСмым сообщСниСм, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ Π»Π΅Π³Ρ‡Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΎΠ½ относится:

      git stash save 'ΠΌΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ'
      

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пСрСчисляСм записи Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ собствСнноС сообщСниС вмСсто ΠΎΠ±Ρ‰Π΅Π³ΠΎ:

      git список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²
    Π’Π°ΠΉΠ½ΠΈΠΊ @ {0}: Π’ ΠΌΠΎΠ΅ΠΉ Π²Π΅Ρ‚ΠΊΠ΅: ΠΌΠΎΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ
    stash @ {1}: WIP Π² my-branch: ca96af0 Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ фиксации 3
    stash @ {2}: WIP Π² my-branch: 03af20c Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ фиксации 2
    stash @ {3}: WIP Π² my-branch: 216b662 Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ фиксации 1
      

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΈΠ· нашСго списка, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ apply :

      git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ stash @ {2}
      

    (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ послСднюю Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠΉ ссылкой Π½Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. )

    ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»ΠΎ списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ². Π‘Π°ΠΌΡ‹ΠΉ послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ссылку Ρ‚Π°ΠΉΠ½ΠΈΠΊ @ {0} .

    Бписок Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‚ΠΎΠΊ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ вСтвям вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

    НалоТСниС ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ…Π»ΠΎΠΏΠΊΠ°

    ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ записи Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° сохранит копию Π² спискС Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², поэтому ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΊ нСскольким вСтвям. Если ΠΌΡ‹ запустим git stash list послС примСнСния Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ всС Π΅Ρ‰Π΅ Ρ‚Π°ΠΌ.

    Бписок всСх Π½Π°ΡˆΠΈΡ… Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²:

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

    Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΈΠ· списка ΠΏΡ€ΠΈ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pop вмСсто `apply:

      git stash pop
      

    Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ apply , Π³Π΄Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ послСдняя запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°. Или ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ вмСсто этого Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

      git pop stash @ {2}
      

    Popping, вСроятно, являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ, Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ запись Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ Π² ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‚ΠΊΠ°Ρ…, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваш список Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² Π±Ρ‹Π» красивым ΠΈ чистым.

    Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠΌ

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ‚ΠΊΡƒ для Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠ°ΠΌΡƒΡŽ послСднюю запись Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅:

      Π²Π΅Ρ‚ΠΊΠ° git stash
      

    Π­Ρ‚ΠΎ Π² основном ярлык для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ:

      git checkout -b моя новая Π²Π΅Ρ‚ΠΊΠ°
    git stash ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ
      

    ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΡΡ‚ΡŒ ссылку Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ запись Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ запись:

      git stash Branch stash @ {2}
      

    Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ очистка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ²

    Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ идСя - ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π² чистотС ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π½Π°ΠΌ записи Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅, особСнно ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΈΠ»ΠΈΠ°Π»Π°ΠΌΠΈ.Π–ΠΈΠ·Π½ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ссли Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ всСго нСсколько Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ², Π° Π½Π΅ сотни! К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ наши измСнСния Π±ΡƒΠ΄ΡƒΡ‚ внСсСны, Π½Π°ΠΌ всС Ρ€Π°Π²Π½ΠΎ Π½Π΅ понадобятся эти Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ.

    ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΈ ΠΈΠ· списка Ρ‚Π°ΠΉΠ½ΠΈΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ drop . Как ΠΈ Π² случаС с pop ΠΈ примСняСтся , это ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ повлияСт Π½Π° послСднюю запись Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΠ½Π³ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ ссылку Π½Π° Ρ‚Π°ΠΉΠ½ΠΈΠΊ:

      git stash drop stash @ {2}
      

    Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ всС записи Π² Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ΅ сразу:

      git stash ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ
      

    ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° - TortoiseGit - ДокумСнтация - TortoiseGit - Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Windows для Git

    Часто, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ Ρ‡Π°ΡΡ‚ΡŒΡŽ своСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, всС происходит Π² бСспорядочном состоянии, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Π΅Ρ‚ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Π΄ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅.ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ ΡΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΠ·ΠΆΠ΅. ΠžΡ‚Π²Π΅Ρ‚ Π½Π° этот вопрос - ΠΊΠΎΠΌΠ°Π½Π΄Π° git stash.

    Stashing ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ грязноС состояниС вашСго Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ваши ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ отслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ поэтапныС измСнСния, ΠΈ сохраняСт Π΅Π³ΠΎ Π² стСкС Π½Π΅Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² любоС врСмя (Π΄Π°ΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅).

    Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ индСкса, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² чистый Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠ°ΠΏΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ контСкстноС мСню, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ β†’ ΠžΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Π²Π΅Ρ€Ρ…, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ввСсти сообщСниС для этого состояния:

    Рисунок 2.51. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Β«Π‘ΠΊΡ€Ρ‹Ρ‚ΡŒ измСнСния»

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Β«Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ нСотслСТиваСмыС», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ нСотслСТиваСмым Ρ„Π°ΠΉΠ»Π°ΠΌ, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ --all.

    Когда TortoiseGit ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сохранСнныС измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, контСкстноС мСню Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ:

    Рисунок 2.52. ΠžΠΏΡ†ΠΈΠΈ (Π½Π΅) Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ°

    Π’Π°ΠΉΠ½ΠΈΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ стСка. ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ измСнСния послСднСго Ρ‚Π°ΠΉΠ½ΠΈΠΊΠ° ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ Π΄Π΅Ρ€Π΅Π²Ρƒ.Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π½ΠΎ удаляСт послСдний Ρ‚Π°ΠΉΠ½ΠΈΠΊ ΠΈΠ· стСка послС Π΅Π³ΠΎ примСнСния. всС Π΅Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈ сохранит Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ измСнСния Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ Π½Π°Π²Π΅Ρ€Ρ…Ρƒ стСка.

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

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