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.
git stash Push -- path/to/folder
Fait l'affaire pour moi.
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~
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é.