Verschil tussen git stash pop en git stash van toepassing

Ik gebruik al geruime tijd git stash pop. Ik ontdekte onlangs het git stash applycommando. Toen ik het uitprobeerde, leek het hetzelfde te werken als git stash pop.

Wat is het verschil tussen git stash popen git stash apply?


Antwoord 1, autoriteit 100%

git stash popgooitde (bovenste, standaard) stash weg nadat deze is toegepast, terwijl git stash applydeze laat staan in de stashlijstvoor mogelijk later hergebruik (of je kunt het dan git stash drop).

Dit gebeurt tenzij er conflicten zijn na git stash pop, in welk geval het de stash niet zal verwijderen, waardoor het zich precies zo gedraagt als git stash apply.

p>

Een andere manier om ernaar te kijken: git stash popis git stash apply && git stash drop.


Antwoord 2, autoriteit 4%

Heb deze handige link die het verschil aangeeft, zoals John Zwinck heeft gezegd, en een nadeel van git stash pop.

Stel bijvoorbeeld dat uw stash-wijzigingen in strijd zijn met andere wijzigingen die u heeft aangebracht sinds u de stash voor het eerst heeft gemaakt. Zowel pop als toepassen zullen de modus voor het oplossen van samenvoegconflicten nuttig activeren, zodat je dergelijke conflicten netjes kunt oplossen … en geen van beide zal de stash kwijtraken, ook al verwacht je misschien ook pop. Omdat veel mensen verwachten dat stashes slechts een simpele stapel zijn, leidt dit er vaak toe dat ze later per ongeluk dezelfde stash laten knappen omdat ze dachten dat deze op was.

Link: http://codingkilledthecat.wordpress .com/2012/04/27/git-stash-pop-considered-harmful/


Antwoord 3, autoriteit 4%

git stash poppast het bovenste stashed-element toe en verwijdert het van de stapel. git stash applydoet hetzelfde, maar laat het in de stash stack.


Antwoord 4, autoriteit 3%

Als je het in actie ziet, kun je het verschil misschien beter begrijpen.

Ervan uitgaande dat we aan de masterbranch werken en een bestand hello.txthebben dat de “Hello” string bevat.

Laten we het bestand aanpassen en er een “world” string aan toevoegen. Nu wil je naar een andere branch gaan om een kleine bug te repareren die je zojuist hebt gevonden, dus je moet je wijzigingen stash:

git stash

Je bent naar de andere branch verhuisd, de bug verholpen en nu ben je klaar om verder te werken aan je masterbranch, dus je popde wijzigingen:

git stash pop

Als je nu probeert de stash-inhoud te bekijken, krijg je:

$ git stash show -p
No stash found.

Als je in plaats daarvan git stash applygebruikt, krijg je de opgeslagen inhoud, maar behoud je deze ook:

$ 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

Dus popis net als stack’s pop – het verwijdert het element in feite zodra het is gepopt, terwijl applymeer op peeklijkt.


5

Aangenomen dat er geen fouten zullen worden gegooid en u wilt werken aan de bovenste stash-item in de lijst met beschikbare stashes:

git stash pop= git stash apply+ git stash drop


6

Snel antwoord:

git stash pop– & GT; Verwijderen uit de stash-lijst

git stash apply– & GT toe; HOUD HET IN DE STASH LIST

Other episodes