2015-02-02 15 views
5

C'è un comando Git che posso usare che elencherà i nomi di tutti i file esistenti in un ramo che non esistono in un altro ramo?In Git, come posso elencare tutti i file esistenti nel ramo A che non esistono nel ramo B

Sfondo: qualcuno ha cancellato un po 'di cronologia e poi ha spinto origine/master. Alcuni membri del team hanno detto che mancano alcuni file. Penso di aver recuperato i file mancanti con una patch che ho creato dai comandi diff. Ho diramato il master dopo il punto in cui la cronologia è stata cancellata e ho applicato la patch al nuovo ramo. Ora vorrei semplicemente vedere quali file esistono nel nuovo ramo che non esistono nell'HEAD del ramo master. Per ora voglio solo i nomi dei file, indipendentemente dal contenuto, e solo per i file che esistono nel nuovo ramo e non esistono presso l'HEAD del master.

+3

prova 'git diff-tree' e poi specifica un' --diff-filter = D', 'git help diff-tree' per dettagli –

+1

@AndrewC Aggiunge anche un flag -r per recurse attraverso sottodirectory. 'git diff-tree -r --diff-filter = D branchA branchB' – jacobhyphenated

+0

Sì! Quanto segue sembra fare esattamente quello che stavo cercando. git diff-tree -r --diff-filter = D HEAD..master jacobhyphenated, se lo invii come risposta accetterò la risposta. Grazie mille. – DAC

risposta

14

È possibile utilizzare git diff-tree per ottenere ciò che si vuole

uso -r a scendere in modo ricorsivo attraverso sotto-albero e --diff-filter per limitare l'output solo alcuni tipi di diff (per esempio, le eliminazioni = D)

git diff-tree -r --diff-filter=D branchA branchB

Problemi correlati