В настоящее время я пытаюсь выбрать функцию из ствола проекта OSS в развилку. В обоих репозиториях используется git, и у меня есть ствол, импортированный в ветвь как ветвь, поэтому все должно быть легко и просто.
Подход, который я использую, заключается в том, чтобы попытаться выбрать все соответствующие коммиты из одной ветви в другую, поскольку я не могу просто выполнить прямое слияние: слишком много разошлось.
Чтобы сгенерировать список коммитов, я должен начать с cherry-pick. Я определил две команды git-log
для запуска:
git log --branch project-trunk **/*Foo*
Это предназначено, чтобы дать мне журнал для любого файла со словом "Foo" в ветке project-trunk
. Это довольно хорошая отправная точка, но я обнаружил, что есть другие коммиты, которые имеют отношение: к счастью, они обычно имеют идентифицирующую работу в журнале коммитов. Поэтому, чтобы найти их, я использую:
git log --branch project-trunk --grep Bar
Это дает мне любые журналы на ветке project-trunk
, которые содержат работу "Бар".
Проблема в том, что мне действительно нужен главный список, упорядоченный в хронологическом порядке, содержащий объединение обеих этих команд. Я прочитал руководство git rev-list
, но не вижу способа сделать то, что хочу.
Возможно ли объединить два отдельных условия, как это? А если нет, то есть ли простой способ объединить вывод двух команд git-log
в хронологическом порядке?