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...

40voto

rsilva4 Punkte 1875

Eine weitere Möglichkeit ist die Verwendung von meld in diesem Fall:

git difftool -d master otherbranch

So lassen sich nicht nur die Unterschiede zwischen den Dateien erkennen, sondern es ist auch ein einfacher Weg, auf eine bestimmte Datei zu zeigen und zu klicken.

29voto

David Plumpton Punkte 1908

Beachten Sie, dass es mit Git einfach ist, die Zusammenführung auszuprobieren und sich von Problemen fernzuhalten, wenn Ihnen das Ergebnis nicht gefällt. Das ist vielleicht einfacher, als im Voraus nach möglichen Problemen zu suchen.

20voto

mannuscript Punkte 4161

Und wenn Sie nur nach Änderungen in bestimmten Dateien suchen, dann:

git diff branch1 branch2 -- myfile1.js myfile2.js

branch1 ist optional und Ihr aktueller Zweig (der Zweig, in dem Sie sich befinden) wird standardmäßig berücksichtigt, wenn branch1 nicht angegeben wird. z.B:

git diff master -- controller/index.js

15voto

Alex Brown Punkte 40146

Wenn Sie gemeinsam oder an mehreren Funktionen gleichzeitig arbeiten, kommt es häufig vor, dass der Upstream oder sogar Ihr Master Arbeit enthält, die nicht in Ihrem Zweig enthalten ist und fälschlicherweise in den Basis-Diffs erscheint.

Wenn Ihr Upstream möglicherweise umgezogen ist, sollten Sie dies tun:

git fetch
git diff origin/master...

Allein die Verwendung von git diff master kann relevante Änderungen einschließen oder nicht einschließen.

11voto

Wim Deblauwe Punkte 22347

Wenn Sie Folgendes verwenden IntelliJ IDEA können Sie auch jeden beliebigen Zweig mit Ihrem aktuellen Arbeitszweig vergleichen. Siehe http://www.jetbrains.com/idea/webhelp/merging-deleting-and-comparing-branches.html#d288093e3827 für weitere Informationen. Dies ist verfügbar in der kostenlose Ausgabe auch.

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