Как прокомментировал j *ill , вы можете express это с:
git log TARGET ^BASE_0 ^BASE_1 ^BASE_2
(они могут go в любом порядке). Если у вас много отрицательных ссылок (приведенные выше выражения ^BASE_<em>number</em>
являются отрицательными ссылками), вы можете упростить ввод текста с помощью:
git log TARGET --not BASE_0 BASE_1 BASE_2
--not
сообщает Git всем последующим спецификаторам должны быть отрицаны. Секунда --not
отрицает отрицание, возвращаясь к положительным ссылкам, так что вы можете - немного бессмысленно для этого примера - написать:
git log --not BASE_0 BASE_1 BASE_2 --not TARGET
.
В Git есть множество способов express ревизий и диапазонов ревизий; см. документацию gitrevisions (или git help revisions
) для получения достаточно полного списка. Обратите внимание, что синтаксис с двумя и тремя точками может иметь разные значения в нескольких командах. Команда git diff
является наиболее показательным примером этого. Обратитесь к странице справочника каждой конкретной команды c Git, чтобы узнать, имеет ли она особое значение для этой команды, и если да, то каков ее смысл.