wake-up-neo.com

Git: So listen Sie Commits für diesen Zweig auf, jedoch nicht für zusammengeführte Zweige

Angenommen, Ihr Git-Commit-Verlauf sieht folgendermaßen aus:

A---B---C---D---E---F master
     \         /
      X---Y---Z topic

Ist es möglich, nur die Commits auf Master A-F aufzulisten? Mit anderen Worten, wenn sich das Commit in einem zusammengeführten Zweig befand, möchte ich nicht, dass es angezeigt wird.

76
wch

git log hat die Option --first-parent, damit Sie keine topic Historie erhalten.

Beim Zusammenführen aus master sind die master-Commits die ersten übergeordneten Elemente beim Zusammenführen. Mit Git-Log können nur die Commits mit --first-parent angezeigt werden, sodass Sie die richtigen Informationen erhalten.

120
CharlesB

Es gibt einen anderen allgemeinen Weg, dies zu tun, der nicht auf --first-parent Beruht, was in bestimmten Situationen hilfreich ist. Verwenden der Verzweigungsausschlussfilter

git log Origin/topic ^Origin/master Dies gibt Ihnen ein Protokoll von Origin/topic, Wobei alle Commits von Origin/master Entfernt wurden.

sie können auch --no-merges hinzufügen, wodurch Zusammenführungs-Commits ausgeblendet werden, die Sie möglicherweise oder möglicherweise nicht möchten.

Ein weiterer praktischer Tipp ist die Verwendung von shortlog anstelle von log, um eine abgekürzte Zusammenfassung zu erhalten, die für Versionshinweise oder für die Kommunikation von Inhalten in einem Zweig hilfreich sein kann.

pdate
Nachdem Sie dies noch einmal gelesen haben, möchten Sie eigentlich fast das Gegenteil von dem, was ich gepostet habe. es würde jedoch alles ausschließen, was sich auf master und foo befindet (git log Origin/master ^Origin/foo). Sie können jedoch auch mit git log Origin/master --no-merges Das bekommen, wonach Sie gefragt haben (alle Commits ausblenden, die Teil der Zusammenführung sind).

17
UpAndAdam