it-swarm.com.de

git visual diff zwischen den Zweigen

Diese Antwort ist ideal, um einen visuellen Unterschied zwischen zwei in git eingecheckten Dateien zu sehen: Wie kann ich die Ausgabe von 'git diff' mit einem visuellen Diff-Programm anzeigen?

Ich möchte jedoch einen optischen Unterschied zwischen zwei Zweigen sehen. Bisher scheint meine beste Wette zu sein: 

git diff --name-status master dev

was nicht sehr informativ und nicht sehr visuell ist.

Gibt es da draußen etwas Besseres?

177
Snowcrash

Verwenden Sie git diff mit einem Bereich .

git diff branch1..branch2

Dadurch werden die Tipps der einzelnen Niederlassungen miteinander verglichen.

Wenn Sie wirklich GUI-Software benötigen, können Sie etwas wie SourceTree versuchen, das Mac OS X und Windows unterstützt.

214
alex

Um einen visuellen Unterschied aller Unterschiede zwischen zwei Zweigen zu sehen, möchte ich die beiden Zweige zusammenführen (OHNE die Zusammenführung begehen) und dann mit git gui oder git Extensions einen Überblick über die Unterschiede erhalten.

Git-Befehlszeile zum Zusammenführen ohne Commit:

 git checkout branchA 
 git merge --no-commit --no-ff branchB 

Wenn Sie fertig sind, können Sie die Zusammenführung mit rückgängig machen

 git merge --abort 

(h/t an @ jcugat für den Kommentar)

81
Tormod Hystad

Wenn Sie die Intellij Idea IDE verwenden, können Sie einfach die Vergleichsoption im Zweig verwenden.

enter image description here

50
Kamal Reddy

Mit gitk geht das auch ganz einfach.

> gitk branch1 branch2

Klicken Sie zuerst auf die Spitze von branch1. Klicken Sie nun mit der rechten Maustaste auf die Spitze von Zweig2 und wählen Sie Diff this-> selected.

43
Martin

Für diejenigen unter Windows, die TortoiseGit verwenden, können Sie durch diese eher obskure Funktion einen etwas visuellen Vergleich erhalten:

  1. Navigieren Sie zu dem Ordner, den Sie vergleichen möchten
  2. Halten Sie shift gedrückt und klicken Sie mit der rechten Maustaste darauf
  3. Gehen Sie zu TortoiseGit -> Browse Reference
  4. Verwenden Sie ctrl, um zwei zu vergleichende Zweige auszuwählen
  5. Klicken Sie mit der rechten Maustaste auf Ihre Auswahl und klicken Sie auf "Ausgewählte Referenzen vergleichen".

Quelle: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/

27
Oversearch

Wenn Sie OSX oder Windows 7+ verwenden, ist Atlassian SourceTree dafür sehr gut geeignet. Es ist frei. 

Sie können die gestaffelten Änderungen in einem Side-by-Side-Diff-Setup sehen und lokal leicht mit Remote- und zwei anderen Zweigen vergleichen. Wenn mehrere Dateien ausgewählt sind, wird der Unterschied wie folgt angezeigt:

enter image description here

Vorausgesetzt, Sie haben einen Feature-Zweig ausgecheckt und möchten den Unterschied zu "Master" sehen, klicken Sie mit der rechten Maustaste auf den Zweig "Master" und wählen Sie "Vergleich gegen Strom".

Leider scheint es nicht so, dass es bald auf * nix-Distributionen verfügbar sein wird

19
Jordan Parker

Versuchen Sie "difftool" (vorausgesetzt, Sie verfügen über unterschiedliche Tools) - siehe https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html

Ich finde name status gut für die Zusammenfassung, aber difftool wird die Änderungen wiederholen (und die -d-Option gibt Ihnen die Verzeichnisansicht), z.

$ git difftool their-branch my-branch

Viewing: 'file1.txt'
Launch 'bc3' [Y/n]:
...

Oder als @ rsilva4 mit -d und standardmäßig zu Ihrem aktuellen Zweig erwähnt, ist es nur - z. Vergleiche mit Master:

$  git difftool -d master..

... und ja - es gibt viele Variationen - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html

13
Paul Kohler

Wenn Sie github verwenden, können Sie die Website dafür verwenden:

github.com/url/to/your/repo/compare/SHA_of_tip_of_one_branch...SHA_of_tip_of_another_branch

Das zeigt Ihnen einen Vergleich der beiden.

8
Arron

In GitExtensions können Sie beide Zweige im Revisionsraster mit auswählen Ctrl gedrückt. Dann können Sie Dateien sehen, die sich zwischen diesen Zweigen unterscheiden. Wenn Sie eine Datei auswählen, sehen Sie Diff für sie.

Entnommen aus hier

8
Mahmoodvcs

AKTUALISIEREN

Ich benutze jetzt SourceTree. Wärmstens empfohlen. Ich mag besonders die Art und Weise, wie du Kerle inszenieren kannst.


Das erledigt die Arbeit: 

git-diffall mit einem GUI-Diff-Tool wie Meld. Siehe Punkt 5 hier:

http://rubyglazed.com/post/15772234418/git-ify-your-command-line

Es gibt einen netten Beitrag über git and meld hier: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy

7
Snowcrash

Sie können dazu auch den kostenlosen P4Merge von Perforce verwenden:

http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools

enter image description here

Details zur Integration mit Git finden Sie hier und hier

aber eine kurze Zusammenfassung von den oben genannten Links ist:

  • Fügen Sie die folgenden Bits in ~/.gitconfig ein, und Sie können $ git mergetool und $ git difftool verwenden, um p4merge zu verwenden
  • Beachten Sie, dass $ git diff immer noch den Standard-Inline-Diff-Viewer verwendet :) (getestet mit git Version 1.8.2)

Änderungen für .gitconfig

[merge]
  keepBackup = false
    tool = p4merge
[mergetool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$PWD/$BASE\"" "\"$PWD/$REMOTE\"" "\"$PWD/$LOCAL\"" "\"$PWD/$MERGED\""
    keepTemporaries = false
    trustExitCode = false
    keepBackup = false
[diff]
    tool = p4merge
[difftool "p4merge"]
    cmd = /Applications/p4merge.app/Contents/Resources/launchp4merge "\"$REMOTE\"" "\"$LOCAL\""
4
Brad Parks

Wenn Sie Eclipse verwenden, können Sie Ihren aktuellen Zweig im Arbeitsbereich visuell mit einem anderen Tag/Zweig vergleichen:

Eclipse workspace compare

4

Wenn Sie den ausgezeichneten WebStorm-Editor verwenden, können Sie ihn mit jedem beliebigen Zweig vergleichen, den Sie möchten:  Webstorm git compare

2
Nico

Mit der Kernfunktionalität von git können Sie viel anfangen. Es kann sinnvoll sein, anzugeben, was in Ihrem visuellen Diff enthalten sein soll. Die meisten Antworten konzentrieren sich auf zeilenweise Unterschiede von Commits, wobei sich Ihr Beispiel auf die Namen der Dateien konzentriert, die in einem bestimmten Commit betroffen sind.

Ein visuelles Element, das anscheinend nicht angesprochen wird, ist, wie die in Zweigen enthaltenen Commits angezeigt werden (ob gemeinsam oder eindeutig).

Für dieses Bild bin ich ein großer Fan von git show-branch; Es wird eine übersichtliche Tabelle mit Festschreibungen pro Zweig für den gemeinsamen Vorfahren erstellt. - Um es auf einem Repo mit mehreren Zweigen mit Abweichungen zu versuchen, geben Sie einfach git show-branch ein und überprüfen Sie die Ausgabe. - Eine Beschreibung mit Beispielen finden Sie unter Commits zwischen Git-Zweigen vergleichen

0
Kay V

So können Sie den visuellen Unterschied zwischen ganzen Commits im Gegensatz zu einzelnen Dateien in Visual Studio (getestet in VS 2017) anzeigen. Leider funktioniert dies nur für Commits innerhalb eines Zweigs: Wählen Sie im "Team Explorer" die Ansicht "Branches", klicken Sie mit der rechten Maustaste auf das Repo und wählen Sie "Verlauf anzeigen" wie in der folgenden Abbildung. 

 enter image description here

Dann erscheint die Geschichte des aktuellen Zweiges im Hauptbereich. (Wo Zweige, die zuvor als Commits endeten, mit Bezeichnungen gekennzeichnet sind, werden durch Labels gekennzeichnet.) Wählen Sie nun mit Strg-Links ein paar Commits aus, klicken Sie mit der rechten Maustaste und wählen Sie "Compare Commits ..." aus dem Einblendmenü. 

Weitere Informationen zum Vergleichen von Zweigen in der Microsoft-Welt finden Sie in dieser stackoverflow-Frage: Unterschiede zwischen Git-Zweigen mit Visual Studio .

0