359 Stimmen

Alle Dateien abrufen, die im Git-Zweig geändert wurden

Gibt es eine Möglichkeit zu sehen, welche Dateien in einem Zweig geändert wurden?

32voto

Yep_It's_Me Punkte 4100

Die Antwort von @twalberg hat mir sehr gut gefallen, aber ich wollte nicht ständig den Namen der aktuellen Verzweigung eingeben müssen. Also benutze ich das hier:

git diff --name-only $(git merge-base master HEAD)

20voto

Rajesh Dusa Punkte 181
git diff --name-only master...branch-name

mit dem wir vergleichen wollen.

15voto

chalasr Punkte 12771

git whatchanged scheint eine gute Alternative zu sein.

8voto

iconoclast Punkte 19228

Was wäre, wenn es so einfach wäre wie das hier?

git changed

Wenn Sie davon ausgehen, dass der Hauptzweig "master" heißt und Sie Ihre anderen Zweige von "master" aus erstellen, dann können Sie diesen Alias zu Ihrem ~/.gitconfig Datei, um es so einfach zu machen:

cbranch = !"git branch | grep '*' | cut -f2 -d' '"
changed = !"git diff --name-only $(git cbranch) $(git merge-base $(git cbranch) master)"

Diese Annahmen werden für die meisten Menschen in den meisten Situationen funktionieren, aber Sie müssen sich bewusst sein, dass Sie sie machen.

Außerdem müssen Sie eine Shell verwenden, die Folgendes unterstützt $() . Es ist sehr wahrscheinlich, dass Ihre Shell dies unterstützt .

4voto

The Godfather Punkte 3808

Aus irgendeinem Grund hat niemand erwähnt git-tree . Véase https://stackoverflow.com/a/424142/1657819

git-tree wird bevorzugt, weil es sich um eine Klempnerarbeiten Befehl; soll programmatisch sein (und vermutlich auch schneller)

(unter der Annahme, dass die Basisverzweigung master )

git diff-tree --no-commit-id --name-only -r master..branch-name

Dies wird Ihnen jedoch zeigen todos Dateien, die in der Verzweigung betroffen waren, wenn Sie explizit sehen wollen geändert nur Dateien, können Sie --diff-filter :

git diff-tree --no-commit-id --name-only -r master..branch-name --diff-filter=M

Man kann auch verwenden --name-status anstelle von --name-only um den Status der Dateien zu sehen ( A / M / D und so weiter)

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