119 votes

Comment ranger les modifications dans le dossier actuel ?

Je voudrais mettre de côté uniquement les modifications dans le dossier actuel et ses sous-dossiers.

Comment puis-je y parvenir?

J'ai essayé l'approche évidente - git stash . mais cela ne semble pas fonctionner.

Je sais que je peux créer des commits temporaires et les supprimer ensuite, mais je veux savoir si git stash prend en charge la mise en mémoire tampon de dossiers spécifiques.

228voto

gorpacrate Points 1548
git stash push -- chemin/vers/dossier

Fait l'affaire pour moi.

16voto

Marco Leogrande Points 2250

git stash ne vous permettra pas de sauvegarder des répertoires partiels avec une seule commande, mais il existe quelques alternatives.

Vous pouvez utiliser git stash -p pour sélectionner uniquement les diffs que vous souhaitez mettre de côté.

Si la sortie de git stash -p est énorme et/ou si vous souhaitez une solution scriptable, et qu'il est acceptable de créer des commits temporaires, vous pouvez créer un commit avec tous les changements sauf ceux dans le sous-répertoire, puis mettre de côté les modifications et revenir en arrière sur le commit. En code :

git add -u :/   # équivalent à (cd reporoot && git add -u) sans changer $PWD
git reset HEAD .
git commit -m "tmp"
git stash       # cela mettra de côté uniquement les fichiers dans le répertoire actuel
git reset HEAD~

9voto

mvp Points 29360

Cela devrait fonctionner pour vous :

cd 
git add .         # ajouter tous les fichiers modifiés à l'index
cd my_folder
git reset .       # sauf ceux que vous voulez mettre de côté
git stash -k      # mettre de côté uniquement les fichiers qui ne sont pas dans l'index
git reset         # supprimer tous les fichiers modifiés de l'index

En gros, cela ajoute tous les fichiers modifiés à l'index, sauf pour le dossier (ou fichiers) que vous voulez mettre de côté. Ensuite, vous les mettez de côté en utilisant -k (--keep-index). Et enfin, vous réinitialisez l'index à son état initial.

-13voto

Xylarax Points 117

Vous pourriez essayer l'une des interfaces GUI git comme SourceTree ou TortoiseGit, c'est ce genre de choses pour lesquelles je vais personnellement vers tortoise car cela finit par être beaucoup plus rapide que d'essayer d'exécuter de nombreuses commandes en ligne de commande.

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