Проверка, какой файл в двух ветвях имеет более позднюю фиксацию - PullRequest
2 голосов
/ 09 июня 2019

Я хочу (вручную) объединить изменения в другой ветке с master. git diff --name-only дает мне только все файлы, которые отличаются. Я не хочу объединять файл с более поздней фиксацией в master (что в большинстве случаев означает, что файл не был изменен в другой ветви).

Для файла, как мне показать, какая ветвь имеет более позднюю фиксацию? В основном я хочу показать вывод git log -1 somefile в двух ветвях? Есть ли способ избежать запуска команды git log дважды, по одному разу для каждой ветви?

1 Ответ

2 голосов
/ 09 июня 2019

Вы можете попробовать с --all --branches параметрами журнала :

git log -1 --all --branches -- yourFile

Это даст вам самый последний коммит во всех ветвях.

Чтобы ограничить этотолько к двум ветвям --branches принимает шаблон оболочки .
Но это не поддерживает "или" в выражении шаблона, хотя .У вас может быть для отображения ветки и grep для тех, которые вам нужны.

Как torek упоминает в комментариях , диапазон ревизий branch1 ... branch2 также является более простой альтернативой.
Это будет использовать трехточечное обозначение , чтобы нацелить на набор коммитов, которые достижимы излибо один из branch1 (левая сторона) или branch2 (правая сторона), но не из обоих.

Итак:

git log -1 branch1...branch2 -- yourFile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...