Différence entre Git Stash Pop et Git Stash s’appliquent

J’utilise git stash pop depuis un certain temps. J’ai récemment découvert la commande git stash apply . Lorsque je l’ai essayé, il semblait fonctionner de la même manière que git stash pop .

Quelle est la différence entre git stash pop et git stash apply ?

git stash pop supprime le cache (par défaut) après l’avoir appliqué, alors que git stash apply laisse dans la liste de stockage pour une réutilisation ultérieure possible (ou vous pouvez ensuite le git stash drop ).

Cela se produit à moins qu’il n’y ait des conflits après le git stash pop , dans ce cas, il n’enlèvera pas le stash, se comportant exactement comme git stash apply .

Une autre façon de voir les choses: git stash pop est git stash apply && git stash drop .

Vous avez ce lien utile qui indique la différence, comme l’a déclaré John Zwinck et un inconvénient de Git Stash Pop.

Supposons, par exemple, que vos modifications cachées entrent en conflit avec d’autres modifications apscopes depuis la création du cache. Les deux pop et apply déclencheront utilement le mode de résolution des conflits de fusion, ce qui vous permettra de résoudre facilement ces conflits… et aucun ne se débarrassera de la réserve, même si vous vous attendez peut-être à de la pop. Étant donné que beaucoup de gens s’attendent à ce que les caches ne soient qu’une simple stack, cela les amène souvent à jeter accidentellement le même cache par la suite, car ils pensaient que c’était parti.

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

git stash pop applique l’élément supérieur et le supprime de la stack. git stash apply fait de même, mais le laisse dans la stack de réserve.

Le voir en action peut vous aider à mieux comprendre la différence.

En supposant que nous travaillons sur master twig principale et que nous ayons un fichier hello.txt contenant la chaîne “Hello”.

Modifions le fichier et y ajoutons la chaîne “world”. Maintenant, vous voulez passer à une twig différente pour corriger un bug mineur que vous venez de trouver, vous devez donc stash vos modifications:

 git stash 

Vous êtes passé à l’autre twig, vous avez corrigé le bogue et maintenant vous êtes prêt à continuer à travailler sur votre twig master .

 git stash pop 

Maintenant, si vous essayez de revoir le contenu de la réserve, vous obtiendrez:

 $ git stash show -p No stash found. 

Cependant, si vous utilisez git stash apply , vous obtiendrez le contenu caché, mais vous le conserverez également:

 $ 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 

Donc, la pop est comme la pop de la stack – elle supprime en fait l’élément une fois qu’il a sauté, alors qu’appliquer ressemble plus à un coup d’oeil .