2016-03-11 13 views
14

Ich versuche Commits zu sehen, die von einem bestimmten Benutzer gemacht wurden, und möchte alle vom Benutzer vorgenommenen Merges von der Ausgabe entfernen. Wie kann ich das tun?Zeige git log ohne merge commits

Ich kann für die Commits eines Benutzers überprüfen git log --author=<name> verwenden, kann aber der andere Teil nicht finden: \

PS: Merge Konflikte entstehen nicht in den Workflow der Repo in Frage, werden alle Zweige umbasiert Vor dem Zusammenführen in den Master ist es also sicher, die Zusammenführungs-Commits von der Ausgabe zu entfernen, und in ähnlicher Weise werden zwei Feature-Zweige nicht miteinander verschmolzen, wodurch die Möglichkeit erhöht wird.

+0

Was, wenn die Zusammenführung einen Konflikt hatte und er es lösen musste? –

+0

@JoePhillllips Das passiert nicht im Workflow des betreffenden Repos, alle Zweige werden rebasiert, bevor sie in den Master übergehen. –

+3

Verwenden Sie 'git log --no-merges' – 0xAX

Antwort

23

Verwendung

git log --author=<name> --no-merges 

Zusätzlich wird die --first-parent Option für Sie brauchbares Ergebnis geben kann:

--first-parent nur Folgen der ersten Eltern begehen auf eine Zusammenführung begehen sehen. Diese Option kann einen besseren Überblick geben, wenn Sie die Evolution eines bestimmten Themenzweiges anzeigen, da die Zusammenführung von in einen Themenzweig dazu führt, dass Sie nur von Zeit zu Zeit auf Upstream updaten, und diese Option ermöglicht es Ihnen, die einzelnen Commits zu ignorieren durch eine solche Zusammenführung in Ihre Geschichte gebracht. Kann nicht mit --bissect kombiniert werden.

7

können Sie verschmilzt weglassen mit --no-merges:

git log --no-merges --author=<name> 

die git log manpage für Details.

+0

Danke für die Antwort, +1! Ich habe die Antwort von @ 0xAX allerdings akzeptiert, da er diese zuerst in den Kommentaren beantwortet hat :) –

Verwandte Themen