2012-10-24 5 views
7

Comment puis-je obtenir une liste de tous les fichiers qui ont été modifiés dans une branche? Je ne peux pas faire un git-diff car la branche est déjà fusionnée en master.Git récupérer une liste de tous les fichiers modifiés dans une branche

J'ai besoin d'un moyen de lister tous les commits dans une branche et d'extraire le chemin des fichiers, sans doublons.

Si quelqu'un a fait une chose comme ça avant que ça sera vraiment apprécié,

un grand merci!

Répondre

1

Cela fonctionne si la branche pointe vers la fusion commettras:

git diff branch_name^..master --name-only 
3

Si l'on considère votre branche comme BranchA Wich branche à partir maître, vous pouvez faire:

git diff --name-status `git merge-base BranchA master`..BranchA 

Cela vous donnera la liste des fichiers modifiés dans la branche préfixé par le statut (M pour modifié, A pour ajouté, D pour supprimé).

2

Faites un git log et déterminez à partir de quel commit vous voulez connaître les différences. Disons que vous déterminez que le hachage du commit que vous voulez est aaaaaa. Ensuite, exécutez:

git diff aaaaaa --stat 
0

Je suis tombé sur ce même problème et la solution de Burtin a travaillé pour @ Michael la plupart. Cependant, je voulais ajouter ceci à un script qui fonctionnerait sur n'importe quelle branche, donc il ne peut pas contenir le nom de la branche. C'est ce que je suis venu avec:

git diff --name-only $(git merge-base master HEAD) 

qui trouve l'ancêtre du cabinet du maître et la branche courante, puis diffs qui engagent la branche courante.

Questions connexes