823 Stimmen

Wie kann man die Änderungen zwischen zwei Commits ohne dazwischen liegende Commits sehen?

Wie kann man die git diff nur den Unterschied zwischen zwei Übertragungen anzeigen, ohne die anderen Übertragungen dazwischen?

19 Stimmen

"git diff" immer zeigt den Unterschied zwischen zwei Commits (oder Commit und Arbeitsverzeichnis usw.).

42 Stimmen

@JakubNarebski, er fragt, wie man den Unterschied zwischen den Änderungen, die durch einen Befehl eingeführt wurden, und den Änderungen, die durch einen anderen Commit eingeführt wurden, erkennen kann. Mit anderen Worten, das Diff von Diffs oder Interdiff.

1 Stimmen

Und wenn Sie den Parameter --dirstat=files zum diff-Befehl hinzufügen, erhalten Sie einen sehr schönen Screenshot der genauen Projekte und Dateien, die geändert wurden, zusammen mit einem Prozentsatz der Änderungen. So geht's: git diff [commit-number] [commit-number] --dirstat=files

26voto

Juanpa Punkte 637

Nehmen wir an, Sie haben Folgendes

A
|
B    A0
|    |
C    D
\   /
  |
 ...

Und Sie wollen sicherstellen, dass A ist dasselbe wie A0 .

Das wird den Zweck erfüllen:

$ git diff B A > B-A.diff
$ git diff D A0 > D-A0.diff
$ diff B-A.diff D-A0.diff

5 Stimmen

Kann auch als Einzeiler abgekürzt werden, ebenso wie die Antwort von @plexoos : diff <(git diff B A) <(git diff D A0) (gleiches Ergebnis wie bei git show)

3 Stimmen

Was Sie also wollen, ist git range-diff B..A D..A0

0 Stimmen

Das ist es, wonach ich gesucht habe

18voto

Tomáš Diviš Punkte 826

Seit Git 2.19 können Sie einfach verwenden:

git range-diff rev1...rev2 - zwei Commit-Bäume vergleichen, ausgehend von ihrem gemeinsamen Vorfahren

ou git range-diff rev1~..rev1 rev2~..rev2 - Vergleich der Änderungen, die durch 2 bestimmte Übertragungen eingeführt wurden

14voto

William Pursell Punkte 188248

Angenommen, Sie möchten den Unterschied zwischen den Commits 012345 und abcdef sehen. Das Folgende sollte das tun, was Sie wollen:

$ git checkout 012345
$ git cherry-pick -n abcdef
$ git diff --cached

0 Stimmen

Danke, das ist eine gute Idee, das Ergebnis nach dem Squashing von Commits zu überprüfen. Zum Beispiel können Sie Ihren Zweig mit nicht gequetschten Commits auschecken und Ihren gequetschten Commit auswählen, um zu sehen, ob alles mit dem interaktiven Rebase reibungslos funktioniert hat. Außerdem, wenn der Master dem Zweig vorausgegangen ist.

10voto

Aakash Punkte 17068

Um das Diff auf GitHub zu überprüfen; können Sie - https://github.com/<username>/<reponame>/compare/<commit1>..<commit2>

Lesen Sie mehr in Vergleichen von Übertragungen

6voto

Flow Overstack Punkte 167

Wie wäre es damit:

git diff abcdef 123456 | less

Es ist praktisch, wenn man es einfach auf "weniger" stellt, wenn man viele verschiedene Diffs spontan vergleichen will.

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