2016-03-22 2 views
1

J'ai eu quelques changements non validés particuliers dans ma branche de développement et je les ai cachés en utilisant la commande git stash, et je réapplique ces changements cachés en utilisant la commande git pop.Git: Comment stocker 'git stash' Données

Mais cet état spécifique que je veux préserver (Si possible, puis-moi dans certains formats de texte). Comme il y a plusieurs fois que j'ai des changements non validés qui ne sont pas particuliers, je fais cela juste pour l'activité de changement de branche ainsi mes changements cachés particuliers se chevauchent (enlevés). Je veux donc préserver cette réserve particulière.

Y a-t-il une chance que je puisse préserver les modifications spécifiques cachées dans certains fichiers si possible?

+2

avez-vous essayé de créer une autre branche et économisez leur? –

+0

http://stackoverflow.com/questions/2160638/how-can--format-patch-with-what-i-stash-away? –

+0

Une solution consiste tout simplement à ne pas utiliser 'stash' mais à le simuler avec des branches créées ad-hoc. J'utilise [un petit script python] (https://gist.github.com/leftaroundabout/e939a9e46d278237aa9b) pour ça (pas bien écrit, je suis sûr qu'il y a une meilleure façon de le faire). – leftaroundabout

Répondre

0

Parce qu'il ya beaucoup de fois où j'ai quelques changements non engagés qui sont pas que je fais notamment que tout intérêt pour la branche activité changeant pour que mes modifications particulières planquée se chevauchaient (supprimé). Donc, je veux préserver cette cachette particulière.

Vous pouvez avoir plusieurs stashes

git stash list 

[email protected]{0}: WIP on master: 686b55d Add wolves. 
[email protected]{1}: WIP on gerbils: b2bdead Add dogs. 
[email protected]{2}: WIP on gerbils: b2bdead Add dogs. 

noms Stash sont indiqués dans la liste. Et vous donne la liste des cachettes qui sont sauvegardées dans la pile de cachette.

$ git stash apply [email protected]{1} 
# On branch gerbils 
# Changes not staged for commit: 
# 
# modified: index.html 

[email protected]{0} est la valeur par défaut lors de l'application; indiquer le nom de planque pour appliquer un différent

git stash apply <stash-name> 

Hope this vous aider !!!

+0

Merci, c'est utile. –

+0

@Pratik Patel: Heureux que ça aide – VKatz

2

Utilisation apply au lieu de pop:

git stash apply 

Vous pouvez également appliquer une planque spécifique (pas le plus récent). commande suivante appliquera la deuxième planque le plus récent (index commence à 0, ce qui est la plus récente Stash):

git stash apply [email protected]{1} 

La même chose fonctionne également avec la pop.

pop est, en fait, soit l'équivalent de ces deux commandes:

git stash apply 
git stash drop 

Vérifiez la git-stash documentation pour plus de détails.

0

Si vous souhaitez enregistrer la planque dans un fichier, exécutez:

git stash show -p [email protected]{1} > <file-path> 

Et si vous voulez appliquer de nouveau, exécutez:

git stash apply < <file-path>