Перечислите все измененные файлы в git merge commit — даже с быстрой перемоткой

Я думаю, есть ли способ, чтобы при объединении ветки с другой веткой ВСЕ измененные файлы были перечислены в моем сообщении фиксации, а не только те, которые были изменены в обеих ветках. Это дало бы мне лучшее представление о том, что было изменено в ветке, просто увидев фиксацию слияния. Есть ли способ сделать это?


person soupdiver    schedule 05.02.2013    source источник
comment
Я не думаю, что для быстрой перемотки вперед вы сможете это сделать.   -  person R0MANARMY    schedule 06.02.2013


Ответы (3)


Я не знаю, как это сделать в сообщении коммита. Но после слияния это даст имена всех файлов, затронутых фиксацией слияния:

git log -m --name-only

Только для списка имен файлов коммита:

git log -m -1 --name-only --pretty="format:" <Merge SHA>

Есть некоторое пустое пространство из-за слияния двух родителей, но его можно легко удалить.

person Schleis    schedule 05.02.2013
comment
это также просто перечисляет все коммиты (конечно, включая имена файлов), но я просто хочу иметь список файлов - person soupdiver; 06.02.2013
comment
добавьте -1 к команде. Обновил мой ответ, чтобы показывать только имена файлов. - person Schleis; 06.02.2013
comment
Спасибо за это! Сегодня я нигде не могу найти -m или -1 (хотя они все еще работают). Эти опции были переименованы? - person Johann; 28.10.2014
comment
-1 в документации обозначается как -‹число›, вы можете ограничить журнал любым количеством коммитов. Хотя я могу найти документацию для -m, но она показана как один из примеров. - person Schleis; 28.10.2014
comment
-m используется в следующих случаях и является параметром diff formatting: этот флаг заставляет коммиты слияния отображать полные различия, как обычные коммиты; для каждого родителя слияния создается отдельная запись в журнале и diff. Исключением является то, что при задании параметра --first-parent отображаются только различия с первым родителем; в этом случае выходные данные представляют собой изменения, внесенные слиянием в текущую ветку. - person d48; 07.01.2015
comment
-m находится в разделе «Различное форматирование» файла git help log. К сожалению, у него нет длинного имени опции. - person Elijah Lynn; 31.03.2017
comment
@elijah : или git log help. - person Timo; 12.12.2017
comment
-m -1 по какой-то причине возвращает все коммиты, объединенные в текущей ветке, поэтому я использую git diff --name-only HEAD HEAD~1 из ответа @ R0MANARMY - person vladkras; 09.07.2018

Вы также можете использовать команду diff, чтобы просмотреть разница между любыми двумя коммитами. Если ветки еще не были объединены, вы можете указать имена ветвей и сравнить их, в противном случае вам может потребоваться найти, где они расходятся (так) и последний коммит перед тем, как они были объединены вместе.

git diff --name-status <commit> <commit>

-name-status Показать только имена и статус измененных файлов.

person R0MANARMY    schedule 05.02.2013

предположим, что у вас есть SHA коммита слияния, тогда git diff --name-only <SHA>^1 <SHA>

person evgenii    schedule 22.10.2019