179 votes

Git : copier tous les fichiers d'un répertoire depuis une autre branche

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 alors 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 peux utiliser un bash script pour le faire, il doit y avoir un moyen plus facile, non ?

265voto

Charles Bailey Points 244082

Comme vous n'essayez pas de déplacer les fichiers dans l'arbre, vous devriez pouvoir extraire le répertoire :

git checkout master -- dirname

17voto

test30 Points 359

S'il n'y a pas d'espace dans les chemins, et que vous êtes intéressé, comme moi, par les fichiers d'une extension spécifique seulement, vous pouvez utiliser

git checkout otherBranch -- $(git ls-tree --name-only -r otherBranch | egrep '*.java')

10voto

simleo Points 143

Pour copier le répertoire sans le suivre :

git restore --source master dirname

0voto

Jackkobec Points 110

Dans mon cas, la solution la plus simple pour récupérer les fichiers du répertoire de la branche d'origine était :

  • origine - alias du référentiel distant (origine par défaut) sourceBranchName
  • branche avec les fichiers requis dans le répertoire
  • sourceBranchDirPath - chemin relatif/absolu vers le répertoire requis avec

fichiers

git checkout origin/sourceBranchName -- sourceBranchDirPath

Exemple :

git checkout origin/validation_fix -- src/test/java/validation/

Le résultat est que tous les fichiers de origine/validation_fix branche par src/test/java/validation/ chemin relatif dans le projet mode(uncommited)

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