Моя иерархия верхнего уровня репо выглядит так:
/dir1
/dir2
/dir3
Я на HEAD
и git log --oneline --first-parent -5 -- dir1/
выдает что-то вроде следующего:
abcb COMM-25 Fix latest
ba0f COMM-17 Some stuff
cda8 New files
db7c COMM-9 Feature merge
e20a Init smth
В Интернете есть много интересных вещей, таких как git log --oneline --first-parent db7c.. -- dir1/
, чтобы получить
abcb COMM-25 Fix latest
ba0f COMM-17 Some stuff
cda8 New files
или даже git log --oneline --first-parent db7c..ba0f -- dir1/
для ограничения на обоих концах
ba0f COMM-17 Some stuff
cda8 New files
Но, черт возьми, Я не могу найти ничего, что могло бы помочь вывести все коммиты до определенного идентификатора коммита .
Мне нужно что-то вроде git log --oneline --first-parent ..cda8 -- dir1/
, чтобы получить
cda8 New files
db7c COMM-9 Feature merge
e20a Init smth
<...>
только с хешем cda8
. Самая последняя команда, приведенная выше, является, конечно, псевдокодом и не дает никакого вывода в реальной жизни (к сожалению :)).
Итак, как мне перечислить все коммиты в определенном каталоге и ДО данного идентификатора коммита (включительно) без изменения HEAD?
Я думаю, что могу принять изменение содержимого dir1 (ТОЛЬКО dir1, не касаясь dir2 и dir3!), Однако выполнение git checkout cda8 dir1/
или git reset cda8 dir1/
не окажет никакого влияния на последующий вывод git log <...> -- dir1/
.
Пожалуйста, помогите, мерзавцы!