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?
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.
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)
Wenn Sie die Intellij Idea IDE verwenden, können Sie einfach die Vergleichsoption im Zweig verwenden.
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.
Für diejenigen unter Windows, die TortoiseGit verwenden, können Sie durch diese eher obskure Funktion einen etwas visuellen Vergleich erhalten:
shift
gedrückt und klicken Sie mit der rechten Maustaste daraufctrl
, um zwei zu vergleichende Zweige auszuwählenWenn 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:
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 .
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
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.
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
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
Sie können dazu auch den kostenlosen P4Merge von Perforce verwenden:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Details zur Integration mit Git finden Sie hier und hier
aber eine kurze Zusammenfassung von den oben genannten Links ist:
$ git mergetool
und $ git difftool
verwenden, um p4merge zu verwenden$ git diff
immer noch den Standard-Inline-Diff-Viewer verwendet :) (getestet mit git Version 1.8.2)[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\""
Wenn Sie Eclipse verwenden, können Sie Ihren aktuellen Zweig im Arbeitsbereich visuell mit einem anderen Tag/Zweig vergleichen:
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
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.
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 .