2703 Stimmen

Auflisten der Namen von Dateien, die zwischen zwei Übertragungen geändert wurden

Ich habe eine Reihe von Übertragungen im Repository. Ich möchte eine Liste der Dateien sehen, die zwischen zwei Commits geändert wurden - von SHA1 à SHA2 .

Welchen Befehl soll ich verwenden?

3 Stimmen

Für eine Übergabe und ihre Eltern: stackoverflow.com/questions/424071/

1 Stimmen

Sie sollten den Titel der Frage ändern... Sie wollen nicht die geänderten Dateinamen auflisten... Sie wollen die Namen der geänderten Dateien auflisten. Beachten Sie, dass es möglich ist, die Namen von Dateien zu ändern, ohne deren Inhalt zu ändern.

34voto

Max MacLeod Punkte 25175

Um die Antwort von @artfulrobot zu ergänzen, wenn Sie geänderte Dateien zwischen zwei Zweigen anzeigen möchten:

git diff --name-status mybranch..myotherbranch

Achten Sie auf den Vorrang. Wenn Sie den neueren Zweig zuerst einfügen, werden die Dateien als gelöscht und nicht als hinzugefügt angezeigt.

Hinzufügen einer grep können die Dinge weiter verfeinern:

git diff --name-status mybranch..myotherbranch | grep "A\t"

Das zeigt dann nur Dateien an, die in myotherbranch .

6 Stimmen

Regexe sind nett und können in der Tat fast alles tun. In diesem Fall gibt es aber auch --diff-filter die diese Funktion von Haus aus bietet, was die Wahrscheinlichkeit falscher Ergebnisse (z. B. falsch positiver Ergebnisse) verringert

0 Stimmen

Dies wird nicht funktionieren, wenn es "A\t" in den Dateinamen. Sie benötigen grep "^A\t"

20voto

Parris Punkte 17070

Wenn Sie nur die geänderten Dateien zwischen dem letzten Commit und dem davor sehen wollen, funktioniert dies ebenfalls:

git show --name-only

1 Stimmen

Einfach und leicht zu merken. Es sollte viel mehr Upvotes bekommen.

11voto

Zorayr Punkte 21896

Fügen Sie den folgenden Alias zu Ihrem ~/.bash_profile Datei, und führen Sie dann source ~/.bash_profile Wenn Sie die aktualisierten Dateien der letzten Übertragung sehen wollen, führen Sie den Befehl aus, showfiles aus Ihrem Git-Repository.

alias showfiles='git show --pretty="format:" --name-only'

3 Stimmen

Oder git config --global alias.showfiles 'show --pretty="format:" --name-only' zu machen git showfiles .

9voto

blindsnowmobile Punkte 3258

Das Folgende funktioniert bei mir gut:

git show --name-only --format=tformat: SHA1..SHA2

Sie kann auch mit einer einzigen Übergabe verwendet werden:

git show --name-only --format=tformat: SHA1

was praktisch ist für die Verwendung in Jenkins wo Sie mit einer Liste von Changeset-SHA-Hash-Werten und möchten diese durchgehen, um zu sehen, welche Dateien geändert wurden.

Dies ist ähnlich wie einige der vorherigen Antworten, aber mit tformat: よりも format: entfernt das Trennzeichen zwischen den Commits.

7voto

Julio Marins Punkte 9097

Dadurch werden die Änderungen in den Dateien angezeigt:

git diff --word-diff SHA1 SHA2

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X