2014-11-06 5 views

Antwort

14

git log Nimmt keine oder mehrere Commits als Argumente, die den Verlauf anzeigen, der zu diesem Commit geführt hat. Wenn kein Argument angegeben wird, wird HEAD angenommen. Für Ihren Fall möchten Sie die beiden Zweig Köpfe Sie vergleichen möchten liefern:

git log --graph --oneline currentbranch otherbranch 

Wenn es nicht zu viel angezeigt werden, können Sie dies durch die Verwendung vereinfachen

git log --graph --oneline --all 

, die wirkt, als ob Sie haben jede Referenz in .git/refs als anzuzeigende Commits angegeben.

+0

Dokumentation: https://www.kernel.org/pub/software/scm/git/docs/git-log.html –

+1

Beide dieser Befehle zeigen den gesamten Verlauf. Gibt es eine Möglichkeit, nur die Änderungen in jedem Zweig seit dem Verzweigungspunkt grafisch darzustellen? – John

+1

@John Ich denke du willst 'git log --graph --oneline aktueller Zweig ... otherbranch', der alle Commits zeigt, die von einem der beiden Zweigköpfe erreichbar sind, aber nicht von beiden. – chepner

1
git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all 
+0

Zwei Anfragen. 1. Könnten Sie bitte eine vereinfachte Version bereitstellen, die die Frage ohne zusätzliche Funktionalität beantwortet? 2. Kannst du erklären, wie man nur die zwei Zweige und nicht alle Zweige zeigt? –

3

Ich hatte das gleiche Problem und landete hier, aber keine Antwort hat mir geholfen, anzuzeigen, wie zwei Zweige divergieren. Schließlich habe ich selbst experimentiert und festgestellt, dass dies funktioniert.

Gegeben Zweig A und Zweig B, ich möchte sehen, wo sie auseinander gingen.

git log --oneline --graph --decorate A B `git merge-base A B`^! 

Hinweis: Vergessen Sie nicht, dass es ^! am Ende ist.

UPDATE

Die obige Befehl eine Zeile arbeitet nicht in Basisfall merge ist mehr als eine. In diesem Fall tun Sie dies:

git merge-base A B -a 
# e.g. output XXXX YYYY 
git log --oneline --graph --decorate A B --not XXXX^ YYYY^