Diese Antwort ist ideal, um einen visuellen Unterschied zwischen zwei Dateien zu sehen, die in git eingecheckt sind: Wie kann ich die Ausgabe von "git diff" mit einem visuellen Diff-Programm anzeigen?
Ich würde jedoch gerne einen visuellen Unterschied zwischen zwei Zweigen sehen. Bisher scheint meine beste Wette zu sein:
git diff --name-status master dev
Das ist nicht sehr informativ und nicht sehr visuell.
Gibt es da draußen etwas Besseres?
Antworten:
Verwenden Sie
git diff
mit einem Bereich .Dadurch werden die Tipps der einzelnen Zweige verglichen.
Wenn Sie wirklich eine GUI-Software möchten, können Sie etwas wie SourceTree ausprobieren, das Mac OS X und Windows unterstützt.
quelle
Meld
, dann ist es als Standard - Einstellungdifftool
mitgit config --global diff.tool meld
und es schließlich statt Ebene startendiff
mitgit difftool branch1..branch2
. Das Ergebnis sieht viel besser aus.git difftool -t meld branch1..branch2
Um einen visuellen Unterschied aller Unterschiede zwischen zwei Zweigen zu sehen, möchte ich die beiden Zweige zusammenführen - OHNE die Zusammenführung festzuschreiben - und dann verwenden
git gui
oder git Extensions einen Überblick über die Unterschiede erhalten.Git-Befehlszeile zum Zusammenführen ohne Festschreiben:
Wenn Sie fertig sind, können Sie die Zusammenführung mit rückgängig machen
(h / t an @ jcugat's für den Kommentar)
quelle
git gui
zeigt es die Konflikte als nicht inszeniert, die Nichtkonflikte als inszeniert, so dass Sie sogar eine gute Unterscheidung erhalten. Hilft mir viel mehr als die bestbewertete Antwort: DWenn Sie die Intellij Idea IDE verwenden, können Sie einfach die Vergleichsoption in der Verzweigung verwenden.
quelle
Sie können dies auch einfach mit gitk tun.
Klicken Sie zuerst auf die Spitze von branch1. Klicken Sie nun mit der rechten Maustaste auf die Spitze von branch2 und wählen Sie Diff this-> selected.
quelle
gitk branch1..branch2
nur zeigt begeht zwischen den beiden Revisionen.Für diejenigen unter Windows, die TortoiseGit verwenden, können Sie durch diese eher undurchsichtige Funktion einen etwas visuellen Vergleich erzielen:
shift
und klicken Sie mit der rechten Maustaste daraufctrl
diese Option, um zwei zu vergleichende Zweige auszuwählenQuelle: http://wikgren.fi/compare-diff-branches-in-tortoise-git-or-how-to-preview-changes-before-doing-a-merge/
quelle
Wenn Sie OSX oder Windows 7+ verwenden, funktioniert Atlassian SourceTree sehr gut. Es ist frei.
Sie können abgestufte Änderungen in einem Side-by-Side-Diff-Setup sehen und lokale mit einfachen und zwei anderen Zweigen vergleichen. Wenn mehrere Dateien ausgewählt sind, wird der Unterschied wie folgt angezeigt:
Angenommen, Sie haben einen Feature-Zweig ausgecheckt und möchten den Diff gegen 'Master' sehen, klicken Sie mit der rechten Maustaste auf den 'Master'-Zweig und wählen Sie "Diff gegen Strom".
Leider scheint es nicht so, als ob es bald auf * nix-Distributionen verfügbar sein wird .
quelle
Versuchen Sie "difftool" (vorausgesetzt, Sie haben verschiedene Tools eingerichtet) - siehe https://www.kernel.org/pub/software/scm/git/docs/git-difftool.html
Ich finde den Namensstatus gut für die Zusammenfassung, aber difftool wiederholt die Änderungen (und die
-d
Option gibt Ihnen die Verzeichnisansicht), zOder wie @ rsilva4 mit
-d
und standardmäßig für Ihren aktuellen Zweig erwähnt, ist es nur - zB mit Master vergleichen:... und ja - es gibt viele Variationen - https://www.kernel.org/pub/software/scm/git/docs/git-reset.html
quelle
git difftool -d their-abc my-abc
-d --dir-diff: Copy the modified files to a temporary location and perform a directory diff on them. This mode never prompts before launching the diff tool.
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.
quelle
github.com/url/to/your/repo/compare/
und dann können Sie die Zweige auswählenIn GitExtensions können Sie beide Zweige im Revisionsraster mit Ctrlgedrückter Taste auswählen . Dann können Sie Dateien sehen, die sich zwischen diesen Zweigen unterscheiden. Wenn Sie eine Datei auswählen, wird diff dafür angezeigt.
Von hier genommen
quelle
AKTUALISIEREN
Mac: Ich benutze jetzt SourceTree. Sehr zu empfehlen. Mir gefällt besonders die Art und Weise, wie man Kerle inszenieren / entbühnen kann.
Linux: Ich hatte Erfolg mit:
meld
ZB
smartgit
unter Ubuntu installieren :.deb
von https://www.syntevo.com/smartgit/download/ herunter.Das macht den Job:
git-diffall mit einem GUI-Diff-Tool wie meld. Siehe Punkt 5 hier:
http://rubyglazed.com/post/15772234418/git-ify-your-command-line
Hier gibt es einen schönen Beitrag über Git und Verschmelzung: http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
quelle
Wenn Sie Eclipse verwenden, können Sie Ihren aktuellen Zweig im Arbeitsbereich visuell mit einem anderen Tag / Zweig vergleichen:
quelle
Sie können dazu auch das kostenlose P4Merge von Perforce verwenden:
http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
Details zur Integration in Git finden Sie hier und hier
Eine kurze Zusammenfassung der oben genannten Links lautet jedoch:
$ git mergetool
und$ git difftool
zu verwenden p4merge$ git diff
immer noch nur der Standard-Inline-Diff-Viewer verwendet wird :) (getestet mit Git-Version 1.8.2)Änderungen für .gitconfig
quelle
Wenn Sie den hervorragenden WebStorm-Editor verwenden, können Sie ihn mit jedem gewünschten Zweig vergleichen:
quelle
Schau es dir an
git show-branch
Mit der Core-Git-Funktionalität können Sie viel anfangen. Es kann sinnvoll sein, anzugeben, was Sie in Ihr visuelles Diff aufnehmen möchten. Die meisten Antworten konzentrieren sich auf zeilenweise Unterschiede bei Commits, wobei sich Ihr Beispiel auf die Namen der Dateien konzentriert, die von einem bestimmten Commit betroffen sind.
Ein visuelles Element, das anscheinend nicht angesprochen wird, ist das Anzeigen der Commits, die in Zweigen enthalten sind (ob gemeinsam oder eindeutig).
Für dieses Bild bin ich ein großer Fan von
git show-branch
; Es wird eine gut organisierte Tabelle mit Commits pro Zweig für den gemeinsamen Vorfahren erstellt. - Um es auf einem Repo mit mehreren Zweigen mit Abweichungen zu versuchen, geben Sie einfachgit show-branch
die Ausgabe ein und überprüfen Sie sie. - Eine Beschreibung mit Beispielen finden Sie unter Vergleichen von Commits zwischen Git-Zweigenquelle
So sehen Sie den visuellen Unterschied zwischen ganzen Commits im Gegensatz zu einzelnen Dateien in Visual Studio (getestet in VS 2017). Leider funktioniert es nur für Commits innerhalb eines Zweigs: Wählen Sie im "Team Explorer" die Ansicht "Zweige", klicken Sie mit der rechten Maustaste auf das Repo und wählen Sie "Verlauf anzeigen" wie im folgenden Bild.
Dann erscheint die Geschichte des aktuellen Zweigs im Hauptbereich. (Wo Zweige, die als frühere Commits für den aktuellen Zweig endeten, durch Beschriftungen gekennzeichnet sind.) Wählen Sie nun einige Commits mit Strg-Links aus, klicken Sie mit der rechten Maustaste und wählen Sie "Commits vergleichen ..." aus dem Einblendmenü.
Weitere Informationen zum Vergleichen von Zweigen in der Microsoft-Welt finden Sie in dieser Frage zum Stapelüberlauf: Unterschiede zwischen Git-Zweigen mit Visual Studio .
quelle
Sie können vscode auch verwenden, um Zweige mit der Erweiterung CodeLense zu vergleichen. Dies wird bereits in dieser SO beantwortet: So vergleichen Sie verschiedene Zweige in Visual Studio-Code
quelle