Comment copier tous les fichiers d'un répertoire à partir d'une autre branche? Je peux lister tous les fichiers de ce répertoire en faisant
git ls-tree master:dirname
Je peux ensuite copier tous les fichiers individuellement en faisant
git checkout master -- dirname/filename
Cependant, l'utilisation de caractères génériques a jusqu'à présent été un échec total. Cela ne fait rien:
git checkout master -- dirname/*.png
Bien que je suppose que je puisse utiliser un script bash pour le faire, il doit y avoir un moyen plus simple, non?
git checkout master -- dirname; git add dirname; git commit -c $COMMIT_SHA1 --reset-author;
où$COMMIT_SHA1
pourrait êtrebranch_a
et serait l'objet de validation qui a le message de validation que vous voulez. Je ne sais pas de manière désinvolte comment déterminer par programme le commit avec la modification la plus récente dedirname
dirname
, mais il copie également tous les fichiers qui se trouvent dans.gitignore
lamaster
branche. Une idée pourquoi c'est?cherry-pick
. Il applique les commits d'autres branches, mais uniquement les fichiers qui ont été modifiés dans le (s) commit (s) que vous voulez.S'il n'y a pas d'espaces dans les chemins et que vous êtes intéressé, comme moi, par des fichiers d'extension spécifique uniquement, vous pouvez utiliser
la source
git checkout master -- *.c