Ich bin auf Branch-X und habe noch ein paar Commits hinzugefügt. Ich möchte alle Unterschiede zwischen MASTER und dem Zweig sehen, in dem ich mich in Bezug auf Commits befinde. Ich könnte einfach eine machen
git checkout master
git log
und dann a
git checkout branch-X
git log
und visuell unterscheiden diese, aber ich hoffe auf eine einfachere, weniger fehleranfällige Methode.
Antworten:
Sie können eine wirklich schöne, visuelle Ausgabe davon erhalten, wie sich Ihre Zweige dadurch unterscheiden
quelle
git log --oneline --graph --all --decorate --abbrev-commit
wird Ihnen eine ähnliche Ausgabe in einem kürzeren / besser lesbaren Befehl gebengit log --all --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset'
git log --oneline --graph --all --decorate
ist genug,--abbrev-commit
ist nicht erforderlich,--oneline
ist kurz für--pretty=oneline --abbrev-commit
Sie können das leicht mit tun
Das zeigt Ihnen, dass Branch-X Commits hat, Master jedoch nicht.
quelle
branch-X
Sie verwendengit log master..
git log master...branch-X
(drei statt zwei Punkte) verwenden. Sieheman gitrevisions
für weitere Informationen.Ich denke, es ist eine Frage der Wahl und des Kontexts. Ich bevorzuge es zu verwenden
Es werden Commits in der Entwicklung angezeigt, die sich nicht im Hauptzweig befinden.
Wenn Sie sehen möchten, welche Dateien tatsächlich geändert werden, verwenden Sie
Wenn Sie keine Argumente angeben, wird der vollständige Unterschied angezeigt. Wenn Sie Visual Diff sehen möchten, installieren Sie es
meld
unter Linux oderWinMerge
unter Windows. Stellen Sie sicher, dass es sich um die Standard-Difftools handelt. Verwenden Sie dann so etwas wieFalls Sie es mit dem aktuellen Zweig vergleichen möchten. Es ist bequemer, HEAD anstelle des Zweignamens wie use zu verwenden:
Es zeigt Ihnen alle Commits, die zusammengeführt werden sollen
quelle
--no-merges
wiegit log origin/master..HEAD --oneline --no-merges
Wenn Sie unter Linux arbeiten,
gitg
können Sie dies sehr schnell und grafisch tun.Wenn Sie auf der Befehlszeile bestehen, können Sie Folgendes verwenden:
Um es
git log
standardmäßig schöner zu machen, lege ich normalerweise die folgenden globalen Einstellungen fest:quelle
Ich würde Folgendes vorschlagen, um den Unterschied "in Commits" zu sehen. Wiederholen Sie den Befehl für symmetrische Unterschiede mit invertierten Argumenten:
quelle
Wenn Sie Gitk verwenden möchten:
Es hat eine schöne GUi der alten Schule
quelle
Nicht die perfekte Antwort, aber besser für Leute, die Github verwenden:
Gehe zu deinem Repo:
Insights -> Network
quelle
Wenn Sie anhand der Festschreibungsnachrichten vergleichen möchten, können Sie Folgendes tun:
quelle
--oneline
und zucut
git log --format='%s'
Dies trägt dazu bei, dass a- und b-Protokolle visuell nebeneinander angezeigt werden können, wenn Sie über ein visuelles Diff-Tool verfügen. Ersetzen Sie den Befehl diff am Ende durch den Befehl zum Starten des visuellen Diff-Werkzeugs.
quelle
Ich habe einige der Antworten verwendet und eine gefunden, die zu meinem Fall passt (stellen Sie sicher, dass sich alle Aufgaben im Release-Zweig befinden).
Andere Methoden funktionieren ebenfalls, aber ich habe festgestellt, dass sie möglicherweise Zeilen hinzufügen, die ich nicht benötige, z. B. Merge-Commits, die keinen Wert hinzufügen.
oder Sie können Ihren Strom mit dem Master vergleichen
git fetch
ist da, um sicherzustellen, dass Sie aktualisierte Informationen verwenden.Auf diese Weise befindet sich jedes Commit in einer Zeile, und Sie können es in einen Texteditor kopieren / einfügen und die Aufgaben mit den Commits vergleichen, die zusammengeführt werden.
quelle