2010-01-27 13 views
5

Sto usando git all'interno di un repository perforce. Voglio essere in grado di sapere esattamente quali file sono stati influenzati da un commit Git in modo da poter tornare indietro con un hook post-commit e aprire quei file per la modifica in perforce, in modo che il server Forces conosca le modifiche.
C'è un modo per ottenere una lista, all'interno dell'hook post-commit, di esattamente quali file sono stati interessati dal commit?C'è un modo per ottenere i file interessati di un commit con un hook post-commit git?

risposta

2

per ottenere i dati grezzi:

git diff-tree HEAD

+0

Non sembra che mi trovi un elenco dei file effettivi: mi mostra le directory interessate. – bergyman

+0

... non importa, scavando tra le opzioni di diff-tree questo potrebbe funzionare. – bergyman

6

Ottenere i percorsi colpite (relativi al $GIT_DIR) della testa del ramo corrente con

git show --pretty=oneline --name-only HEAD | sed 1d 
+0

È possibile ottenere lo stesso output con: git diff-tree --name-only -r HEAD | sed 1d Interessante che ci sono alcuni modi per farlo ... – bergyman

+0

In questo caso, vai con 'git diff-tree' su' git show' perché il primo è l'impianto idraulico di basso livello, al contrario della porcellana destinata all'uomo uso. Vedi http://progit.org/book/ch9-1.html –

1

è git log --name-only quello che stai cercando? git log --name-status mostra anche l'azione come M per modificato, A per aggiunto (presumo) ecc.

Infine, l'opzione --pretty=oneline potrebbe essere utile per semplificare l'analisi.

Ovviamente probabilmente lo avete già capito ma ho aggiunto questo per riferimento futuro.

Problemi correlati