2012-10-24 9 views
7

Come posso ottenere un elenco di tutti i file che sono stati modificati in un ramo? Non posso fare un git-diff perché il ramo è già fuse in master.Git recuperare un elenco di tutti i file modificati in un ramo

Avrei bisogno di un modo per elencare tutti i commit in un ramo ed estrarre il percorso dei file, senza duplicati.

Se qualcuno ha fatto una cosa simile prima sarà molto apprezzato,

un sacco di grazie!

risposta

1

Questo funziona se il ramo sta puntando l'unione commit:

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

Se consideriamo la filiale come BranchA Quale fu derivato dallo maestro, si può fare:

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

Questo vi darà l'elenco dei file modificati nella filiale con il prefisso di stato (M per modificato, a per aggiunta, D per la cancellata).

2

fare un git log e capire da che impegnano volete conoscere le differenze. Diciamo che si stabilisce che l'hash del impegnano che si desidera è aaaaaa. Quindi esegui:

git diff aaaaaa --stat 
0

Mi sono imbattuto in questo stesso problema e la soluzione di @Michael Burtin ha funzionato per la maggior parte. Tuttavia, ho voluto aggiungere questo a uno script che funziona su qualsiasi ramo, quindi non può contenere il nome del ramo. Questo è ciò che mi si avvicinò con:

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

che trova l'antenato armadio di master e il ramo corrente, quindi diff che commettono con il ramo corrente.

Problemi correlati