Ich habe ein Test-Git-Projekt erstellt, um herauszufinden, wie ich die verschiedenen Protokolle zwischen zwei Zweigen erhalten soll.Git unterscheiden Protokolle zwischen zwei Zweigen
In den meisten Fällen haben wir einen solchen Fall: Zweig Master hat einige Commits Kirsche gepflückt zu meistern, unter dem Diagramm sehen:
Das „Ich“ begehen ist Kirsche gepflückt Zweig zu meistern. Mein erwartetes Ergebnis von verschiedenen Protokollen zwischen Master und dbg_feature sollte nur "J" sein.
Aber eigentlich, wenn ich unter Befehl ausführen:
git cherry -v master dbg_feature
ich bekommen "I" und "J", die handverlesene ein "I" nach wie vor darin Liste:
+ a1915061be2f445d322abc7bfb7d19bbb357b917 I
+ 6486e899e07b6d6f539cbcad10655dcc345f434d J
Wenn ich unter Befehl ausführen:
git log --oneline --no-merges master..dbg_feature
die Ausgabe unter:
wie unten6486e89 J
a191506 I
Wenn laufen git rev-list-Befehl:
git rev-list --oneline --no-merges --cherry-pick --right-only master...dbg_feature
6486e89 J
a191506 I
Ergebnis das gleiche wie git log scheint.
Also, was ist der richtige Befehl, um genau die verschiedenen Logs zwischen diesen beiden Zweigen zu bekommen?
cherry-pick-commits werden als neue Commits behandelt, daher denke ich, dass es unmöglich ist, so einen Unterschied zu machen, um die ausgewählten Commits herauszufiltern. Wenn alles verschmolzen ist, sollte es in Ordnung sein. – beetlej
Ein bisschen seltsam, nach der Ausgabe, "I" und "J" sollte commit von dbg_feature aber nicht von Master. Außerdem hat der Master keine äquivalenten Commits zu I oder J. Wenn er eine äquivalente Commit zu I hat, sollte das + - sein. – ElpieKay
@ElpieKay Ja, weil ich ausgewählt worden bin, um zu meistern, aber dieser Befehl scheint es nicht zu wissen. – lucky1928