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?

255voto

twalberg Punkte 56757

Eine Alternative zu der Antwort von @Marco Ponti, und die Vermeidung des Checkouts:

git diff --name-only <notMainDev> $(git merge-base <notMainDev> <mainDev>)

Wenn Ihre spezielle Shell das $()-Konstrukt nicht versteht, verwenden Sie stattdessen Backticks.

227voto

Marco Ponti Punkte 2279

Alles, was Sie tun müssen, ist Folgendes:

git checkout <notMainDev>
git diff --name-only <mainDev>

Dadurch werden nur die Dateinamen angezeigt, die sich zwischen den beiden Zweigen unterscheiden.

118voto

exussum Punkte 17675

Erstaunlich, dass dies bisher noch nicht gesagt wurde!

git diff main...branch

Sehen Sie die Änderungen also nur auf branch

Um den aktuellen Zweig zu prüfen, verwenden Sie

git diff main...

Dank an jqr

Dies ist die Kurzform für

git diff $(git merge-base main branch) branch

so dass die Merge-Basis (die letzte gemeinsame Übertragung zwischen den Zweigen) und die Zweigspitze

Auch mit origin/main anstelle von nur master hilft, falls Ihr lokales Hauptnetz veraltet ist

76voto

lukiller Punkte 977

Ich kann nicht glauben, dass es so viele Möglichkeiten gibt, dies zu tun. Ich verwende whatchanged, wie schon jemand zuvor gepostet hat, nur mit den folgenden Argumenten:

git whatchanged --name-only --pretty="" origin..HEAD

Hier werden nur die Dateinamen aufgelistet, und zwar nur die, die sich im aktuellen Zweig geändert haben.

34voto

c69 Punkte 18025

Update November 2020:

Um die Liste der im aktuellen Zweig geänderten (und übergebenen!) Dateien zu erhalten, können Sie den kürzesten Konsolenbefehl verwenden, der den Standard git :

git diff --name-only master...


  • Wenn Ihr lokaler "Master"-Zweig veraltet ist (hinter dem Remote-Zweig), fügen Sie einen Remote-Namen hinzu (unter der Annahme, dass er "origin" ist):

    git diff --name-only origin/master...

  • Wenn Sie auch unbestätigte Änderungen einbeziehen wollen, entfernen Sie die ... :

    git diff --name-only master

  • Wenn Sie einen anderen Namen für den Hauptzweig verwenden (z. B. "main"), ersetzen Sie ihn:

    git diff --name-only main...

  • Wenn Sie nach stdout ausgeben möchten (damit es kopierbar ist):

    git diff --name-only master... | cat

  • Wenn Sie möchten, dass die Dateinamen im VSCode-Terminal anklickbar sind unabhängig davon, von welchem Ordner aus Sie diesen Befehl ausführen , hinzufügen --relative :

    git diff --name-only --relative master... | cat


pro wirklich schöne detaillierte Erklärung der verschiedenen Optionen https://blog.jpalardy.com/posts/git-how-to-find-modified-files-on-a-branch/

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