2347 Stimmen

Anzeigen, welche Dateien sich zwischen zwei Revisionen geändert haben

Ich möchte zwei Zweige zusammenführen, die eine Zeit lang getrennt waren, und möchte wissen, welche Dateien geändert wurden.

Ich bin auf diesen Link gestoßen: http://linux.yyz.us/git-howto.html was recht nützlich war.

Die Tools zum Vergleich von Zweigen, die ich kenne, sind:

  • git diff master..branch
  • git log master..branch
  • git shortlog master..branch

Ich habe mich gefragt, ob es so etwas wie "git status master..branch" gibt, um nur die Dateien zu sehen, die sich in den beiden Zweigen unterscheiden.

Ohne ein neues Werkzeug zu erstellen, ist dies wohl das, was dem am nächsten kommt, was Sie jetzt tun können (was natürlich Wiederholungen anzeigt, wenn eine Datei mehr als einmal geändert wurde):

  • git diff master..branch | grep "^diff"

Ich frage mich, ob ich etwas übersehen habe...

2891voto

JasonSmith Punkte 70486

Um den aktuellen Zweig zu vergleichen mit main Zweigstelle:

$ git diff --name-status main

Um zwei beliebige Zweige zu vergleichen:

$ git diff --name-status firstbranch..yourBranchName

Es gibt mehr Optionen für git diff において offizielle Dokumentation (und insbesondere --name-status Option).

441voto

Gerry Punkte 9777

Versuchen Sie

$ git diff --stat --color master..branchName

Auf diese Weise erhalten Sie mehr Informationen über jede Änderung, wobei die Anzahl der Zeilen gleich bleibt.

Sie können die Zweige auch umdrehen, um ein noch deutlicheres Bild des Unterschieds zu erhalten, wenn Sie in die andere Richtung fusionieren würden:

$ git diff --stat --color branchName..master

172voto

Eric Anderson Punkte 3574

Denken Sie auch daran, dass Git billiges und einfaches Branching bietet. Wenn ich denke, dass eine Zusammenführung problematisch sein könnte, erstelle ich einen Zweig für die Zusammenführung. Wenn also master hat die Änderungen, die ich zusammenführen möchte, und ba mein Zweig ist, der den Code von Master benötigt, könnte ich folgendes tun:

git checkout ba
git checkout -b ba-merge
git merge master
.... review new code and fix conflicts....
git commit
git checkout ba
git merge ba-merge
git branch -d ba-merge
git merge master

Das Endergebnis ist, dass ich die Zusammenführung auf einem Wegwerfzweig ausprobieren konnte, bevor ich an meinem Zweig herumschraubte. Wenn ich mich verheddere, kann ich einfach die ba-merge verzweigen und neu beginnen.

59voto

Paulino III Punkte 1796

Wenn jemand versucht, eine Diff-Datei aus zwei Zweigen zu erzeugen :

git diff master..otherbranch > myDiffFile.diff

46voto

Yantao Xie Punkte 11260

Es gibt auch eine GUI-basierte Methode.

Sie können verwenden gitk .

  1. Laufen:

    $ gitk --all
  2. Klicken Sie mit der rechten Maustaste auf eine Übertragung eines Zweigs und wählen Sie Markieren Sie diese Übertragung im Pop-up-Menü.

  3. Klicken Sie mit der rechten Maustaste auf eine Übertragung eines anderen Zweigs und wählen Sie Diff dies -> markierte Übergabe o Mit Diff markierte Übergabe -> dies .

Im rechten unteren Bereich wird eine Liste der geänderten Dateien angezeigt, im linken unteren Bereich die Details der Diffs.

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