web-dev-qa-db-fra.com

Comment cacher les modifications dans le dossier actuel?

Je voudrais cacher les modifications 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 validations temporaires et les supprimer par la suite, mais je veux savoir si git stash prend en charge le stockage de dossiers spécifiques.

47
stdcall
git stash Push -- path/to/folder

Fait l'affaire pour moi.

50
gorpacrate

git stash ne vous permettra pas d'enregistrer des répertoires partiels avec une seule commande, mais il existe des alternatives.

Vous pouvez utiliser git stash -p pour ne sélectionner que les différences que vous souhaitez ranger.

Si la sortie de git stash -p est énorme et/ou vous voulez une solution scriptable, et il est acceptable de créer des validations temporaires, vous pouvez créer une validation avec toutes les modifications sauf celles du sous-répertoire, puis cacher les modifications et rembobiner la validation. Dans du code:

git add -u :/   # equivalent to (cd reporoot && git add -u) without changing $PWD
git reset HEAD .
git commit -m "tmp"
git stash       # this will stash only the files in the current dir
git reset HEAD~
12
Marco Leogrande

Cela devrait fonctionner pour vous:

cd <repo_root>
git add .         # add all changed files to index
cd my_folder
git reset .       # except for ones you want to stash
git stash -k      # stash only files not in index
git reset         # remove all changed files from index

Fondamentalement, il ajoute tous les fichiers modifiés à l'index, à l'exception du dossier (ou des fichiers) que vous souhaitez ranger. Ensuite, vous les planquez à l'aide de -k (--keep-index). Et enfin, vous réinitialisez l'index à l'endroit où vous avez commencé.

7
mvp