Wie erhalte ich eine eindeutige Liste von Dateien, die in einem Repository innerhalb einer Reihe von Commits in Git geändert wurden?

8

Ich möchte eine Liste von Dateien aus einem Git-Repository erhalten, die innerhalb einer Reihe von Commits geändert oder erstellt wurden. Ist das möglich? Ich habe mir log angesehen, aber das scheint das nicht zu erreichen.

    
Sio 22.01.2012, 23:36
quelle

3 Antworten

9

git diff --name-only ${range} gibt Ihnen genau das, was Sie wollen: nur die Namen von Dateien, die in dieser Zeit geändert wurden.

Tatsächlich gibt es Ihnen fast das, wonach Sie gefragt haben: Dazu gehören Dateien, die vollständig gelöscht wurden, nicht nur geänderte Dateien. Es würde auch Dateien vermissen, die innerhalb des Bereichs erstellt und dann entfernt wurden.

Um das vollständige Bild zu erhalten, möchten Sie wahrscheinlich den Bereich durchlaufen und dann die Ergebnisse uniqieren; Verwende git log , um den Bereich der Commits zu erhalten, und schicke sie dann gegen die Eltern.

    
Daniel Pittman 22.01.2012, 23:42
quelle
4
%Vor%

gibt Ihnen eine Liste der Dateien, die zwischen den SHAIDs SHAstart und SHAend geändert wurden

    
idlethread 22.01.2012 23:44
quelle
1

git diff --name-only --diff-filter=AM <REV1>..<REV2>

Dies ergibt eine Liste von Dateien ( --name-only ) modifiziert oder hinzugefügt ( --diff-filter=AM ) in allen Commits, die nach und davor erreichbar sind ( <REV1>..<REV2> ) wo und ist eine Revision in git.

Weitere Informationen zum Festlegen von Revisionen und Bereichen finden Sie auf dieser Seite: Ссылка

Weitere Informationen zu den Diff-Optionen und insbesondere den --diff-filter -Optionen finden Sie unter: Ссылка

    
James 23.01.2012 02:26
quelle

Tags und Links