Question Comment puis-je stocker un fichier spécifique? [dupliquer]


Dupliquer possible:
Comment cacher un seul fichier sur plusieurs fichiers qui ont changé 

Comment puis-je stocker un fichier spécifique en laissant les autres actuellement modifiés hors de la réserve que je suis sur le point d'enregistrer?

Par exemple, si le statut git me donne ceci:

younker % gst      
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   app/controllers/cart_controller.php
#   modified:   app/views/cart/welcome.thtml
#
no changes added to commit (use "git add" and/or "git commit -a")

et je veux seulement stocker app / views / cart / welcome.thtml, comment ferais-je cela? Quelque chose comme (mais bien sûr cela ne fonctionne pas):

git stash save welcome_cart app/views/cart/welcome.thtml

1030
2018-03-31 21:05


origine


Réponses:


MODIFIER: Depuis git 2.13, il y a une commande pour enregistrer un chemin spécifique vers le stash: git stash push <path>. Par exemple: git stash push -m welcome_cart app/views/cart/welcome.thtml.

ANCIENNE RÉPONSE

Vous pouvez le faire en utilisant git stash --patch (ou git stash -p) - vous entrerez en mode interactif où vous serez présenté avec chaque morceau qui a été changé. Utilisation n pour ignorer les fichiers que vous ne voulez pas stocker, y quand vous rencontrez celui que vous voulez cacher, et q quitter et laisser les mecs restants découverts. a va stocker le morceau montré et le reste des mecs dans ce fichier.

Ce n'est pas l'approche la plus conviviale, mais le travail est fait si vous en avez vraiment besoin.


1574
2018-03-31 21:19



J'ai l'habitude d'ajouter aux changements d'index que je ne veux pas cacher et puis de stocker avec l'option --keep-index.

git add app/controllers/cart_controller.php
git stash --keep-index
git reset

La dernière étape est facultative, mais généralement vous le voulez. Il supprime les modifications de l'index.


Attention Comme indiqué dans les commentaires, cela met tout dans la cachette, à la fois mise en scène et non mise en scène. L'index --keep-laisse juste l'index seul après que la cachette est faite. Cela peut entraîner des conflits de fusion lorsque vous affichez le cache ultérieurement.


245
2017-12-18 20:40