528 Stimmen

Wie kann ich die Unterschiede zwischen den einzelnen Zweigen in Git sehen?

Ich bin auf Zweig-X und habe ein paar weitere Übertragungen hinzugefügt. Ich möchte alle Unterschiede zwischen MASTER und dem Zweig, auf dem ich mich befinde, in Bezug auf die Commits sehen. Ich könnte einfach eine

git checkout master
git log

und dann eine

git checkout branch-X
git log

und diese visuell unterscheiden, aber ich hoffe auf eine einfachere, weniger fehleranfällige Methode.

960voto

Das können Sie ganz einfach tun mit

git log master..branch-X

Das zeigt Ihnen Commits, die branch-X hat, aber master nicht.

415voto

tom Punkte 18563

Eine sehr schöne visuelle Ausgabe der Unterschiede zwischen Ihren Zweigen erhalten Sie mit dieser

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative master..branch-X

165voto

zainengineer Punkte 11921

Ich denke, es ist eine Frage der Wahl und des Kontextes. Ich bevorzuge die Verwendung von

git log origin/master..origin/develop --oneline --no-merges

Es zeigt Commits in der Entwicklung an, die sich nicht im Master-Zweig befinden.

Wenn Sie sehen wollen, welche Dateien tatsächlich geändert wurden, verwenden Sie

git diff --stat origin/master..origin/develop --no-merges

Wenn Sie keine Argumente angeben, wird der vollständige Unterschied angezeigt. Wenn Sie einen visuellen Unterschied sehen wollen, installieren Sie meld unter Linux, oder WinMerge unter Windows. Vergewissern Sie sich, dass es sich um die Standard-Diff-Tools handelt, und verwenden Sie etwas wie

git difftool -y origin/master..origin/develop --no-merges

Für den Fall, dass Sie sie mit dem aktuellen Zweig vergleichen möchten. Es ist bequemer, HEAD anstelle des Zweignamens wie use zu verwenden:

git fetch
git log origin/master..HEAD --oneline --no-merges

Es zeigt Ihnen alle Commits an, die zusammengeführt werden sollen

32voto

mmaruska Punkte 498

Ich würde folgendes vorschlagen, um den Unterschied "in Commits" zu sehen. Für einen symmetrischen Unterschied wiederholen Sie den Befehl mit invertierten Argumenten:

git cherry -v master [your branch, or HEAD as default]

16voto

mvp Punkte 101988

Wenn Sie mit Linux arbeiten, gitg ist der richtige Weg, um dies sehr schnell und grafisch zu tun.

Wenn Sie auf der Kommandozeile bestehen, können Sie verwenden:

git log --oneline --decorate

Anfertigen git log schöner zu machen, stelle ich normalerweise diese globalen Einstellungen ein:

git config --global log.decorate true
git config --global log.abbrevCommit true

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