Angenommen, Ihr Git-Commit-Verlauf sieht folgendermaßen aus:
A---B---C---D---E---F master
\ /
X---Y---Z topic
Ist es möglich, dass die Git-Liste nur die Commits auf Master, AF enthält? Mit anderen Worten, wenn sich das Commit in einem zusammengeführten Zweig befand, möchte ich nicht, dass es angezeigt wird.
git
branch
git-branch
git-log
wch
quelle
quelle
D
undZ
Teil des fusionierten Zweigs war?git log
erlaubt es, nur die Commits mit anzuzeigen--first-parent
, damit Sie das richtige Zeug bekommenAntworten:
git log
hat Option--first-parent
, so dass Sie keinetopic
Geschichte bekommen .Beim Zusammenführen von
master
sind diemaster
Commits die ersten Eltern, die zusammengeführt werden. Mit dem Git-Protokoll können nur die Commits mit --first-parent angezeigt werden, sodass Sie das richtige Material erhalten.quelle
--first-parent
macht es :) in Kombination mit können--no-merges
Sie die Zusammenführungs-CommitsTLDR :
git log origin/master --no-merges
gibt Ihnen ein Protokoll des Masters und schließt alle zusammengeführten Commits aus (in diesem Fall x, y, z).Ursprüngliche Punkte
Es gibt einen anderen allgemeinen Weg, der nicht davon abhängt,
--first-parent
welcher in bestimmten Situationen hilfreich ist. Verwenden Sie die Zweigausschlussfiltergit log origin/topic ^origin/master
Dadurch erhalten Sie ein Protokoll, in demorigin/topic
alleorigin/master
Commits entfernt wurden.Sie können auch hinzufügen,
--no-merges
welche Zusammenführungs-Commits ausgeblendet werden, die Sie möglicherweise möchten oder nicht.Ein weiterer praktischer Tipp ist,
shortlog
stattdessenlog
eine abgekürzte Zusammenfassung zu verwenden, die für Versionshinweise oder die Kommunikation der Inhalte in einem Zweig nützlich sein kann.Update
Nachdem Sie dies erneut gelesen haben, möchten Sie tatsächlich fast das Gegenteil von dem, was ich gepostet habe. es würde jedoch alles ausschließen, was sich auf master und foo (
git log origin/master ^origin/foo
) befindet. Sie können jedoch auch das bekommen, wonach Sie fragen (alle Commits ausblenden, die Teil von Zusammenführungen sind)git log origin/master --no-merges
quelle
Funktioniert das nicht
quelle