Допустим, я иметь следующую историю
D---E-------F
/ \ \
B---C---G---H---I---J
/ \
A-------K---------------L--M
git log --ancestry-path D..M выдаст мне
E-------F
\ \
G---H---I---J
\
L--M
Однако я хотел бы только следующее
E
\
G---H---I---J
\
L--M
Или
E-------F
\
I---J
\
L--M
По сути, я хотел бы пройти только один путь а не два.
Возможно ли это? И если да, то что это за команда?
Edit:
Я пробовал использовать --first-parent, но это не совсем то. git log --first-parent G..M дает мне
F
\
H---I---J
\
L--M
Он включает F, потому что F является первым родителем I. Вместо этого я хотел бы
H---I---J
\
L--M
Любая помощь приветствуется.
Решение (которое работало для me):
Как заявил @VonC, нет ни одного однострочника, который бы это делал. В итоге я использовал сценарий bash.
Например, git log --first-commit G..M равно
H - F - I - J - L - M
Однако родителем F является E, а не H. Поэтому мы опускаем F, давая мне
H - I - J - L - M
Ура!