2012-01-22 5 views
16

Come elenco tutti i file che ho eseguito il commit su un ramo specifico? Ho impegnato più di 40 file in un ramo e ho bisogno di trovare i nomi dei file perché sto cercando di eseguire il debug di qualcosa, difficile da fare quando non ricordo i nomi dei file.come trovo un elenco di file impegnati in un ramo?

git log mi fornisce solo un lungo elenco di commit ma non i file effettivi.

risposta

12

Hai provato git ls-tree? si

git ls-tree --name-only -r <branch_name> 

--name-solo dà solo i nomi dei file. -r si ricorre nelle sottodirectory.

Se si desidera il nome della sottodirectory elencata prima di ricorrere in esso, aggiungere -t all'elenco degli argomenti.

+0

Risposta meravigliosa. La domanda che hai risposto non è immediatamente ovvia, e so di git log. – octopusgrabbus

+0

ho una lista di tonnellate di file invece di pochi dalla mia filiale. 'git log --name-only' sembra la risposta appropriata per vedere i file modificati dai commit nel ramo – Eugene

+0

@Eugene: Un voto negativo è un po 'duro, non credi? – Carl

4

Il comando git ls-files elenca tutti i file presenti nell'ultimo commit sul ramo corrente.

Oppure, è possibile utilizzare git diff --name-only per visualizzare un elenco di file diversi tra due commit qualsiasi arbitrari.

3

git log --name-status darà i nomi e lo stato dei file modificati in ogni commettere

+0

per nome intendi il nome del ramo? – iCodeLikeImDrunk

+0

risposta perfetta, brillante –

13

Se il ramo è stato derivato da master è possibile utilizzare questo comando per elencare tutti i nuovi file che dove Aggiunto dopo ramificazione:

git diff master...new-branch --name-status --diff-filter=A 

Disponibile filtro per --diff-filter sono:

Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R) 
+0

questo non funziona me – kkudi

+0

Mi aspetto di avere qualche aiuto, dovresti fornire maggiori informazioni. Hai sbagliato output? Hai un errore? –

+0

il file restituito è vuoto. git log --name-status ha funzionato bene. – kkudi

-1

provare a utilizzare smartgit. è un client gui per git. ha un'interfaccia utente molto utile ed è gratuita per uso non commerciale.

+0

Questo non ha risposto direttamente alla sua domanda, ma l'informazione è utile. Grazie. – octopusgrabbus

+0

Soooo, come si usa smartgit per vedere quali file sono stati commessi? Questo in realtà risponderebbe alla domanda. –

10

git log --name-only ha funzionato per me.

+0

Questa è stata l'unica risposta che sembra effettivamente affrontare la domanda. Grazie! –

0

Questo può essere utile, se si desidera conoscere tutti i file distinti che ha ottenuto modificato dopo ramificazione:

git log---name stato sviluppare ... branchname | grep -E "^ [AMD] \ s" | sort -u

E questa variante elencherà il sottoinsieme di loro che si modificato:

git log --name-status sviluppare ... branchname --author = | grep -E "^ [AMD] \ s" | sort -u

1

git log---name solo ha funzionato per me.