81 votes

Est-ce que git peut faire un diff de la copie de travail avec stash

Comment puis-je comparer ma copie de travail actuelle à une cachette ?

Mon cas d'utilisation : ma copie de travail contient déjà un sous-ensemble des modifications dans mon stash@{0} , mais je ne veux pas appliquer toutes les modifications dans stash@{0} . Je veux faire un diff pour aider à déterminer quels changements souhaitables dans stash@{0} sont encore manquants dans ma copie de travail.

53voto

Andy Points 9657

S'il s'agissait de votre cachette la plus récente, git diff stash@{0} fera. Sinon, vous pouvez utiliser git stash list pour obtenir l'index de la réserve que vous souhaitez comparer.

Pour voir la différence entre la copie de travail réelle et la cachette, vous devez d'abord la valider. Vous pouvez ensuite annuler le commit.

 git add -A                   <- Add all the files
git commit -m "temp"         <- commit them
git diff stash@{0}..HEAD     <- diff the commit with your stash
git reset HEAD~              <- roll your commit back

20voto

Max Wallace Points 2000

Vous ne pouvez pas le faire sans valider ou cacher votre copie de travail. Le stockage est probablement moins risqué :

 git add -A                    # Stage all changes in your working copy.
git stash save --keep-index   # Stash your working copy and leave it intact
git diff stash@{0} stash@{1}

Pour vous débarrasser de la cachette que vous venez de créer pour faire la différence, utilisez git stash pop ou git stash drop stash@{0} .

Si vous souhaitez utiliser un commit à la place, consultez la réponse de @Magne .

15voto

niksvp Points 3218

Je pense que OP voulait la réponse pour voir quelle différence la cache contient autre que les fichiers présents dans la copie de travail.

La commande suivante montre ce que contient la cachette.

 git stash show -p stash@{0}

6voto

MOHRE Points 608

Vous pouvez utiliser git stash show -l . Il montre ce que vous voulez sans réserve ni engagement supplémentaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X