Я не хочу использовать команду git merge в качестве прекурсора для просмотра конфликтующих файлов. Я не хочу делать слияние, я хочу определить потенциальные проблемы перед слиянием - проблемы, которые автоматическое слияние может скрыть от меня. Решение, которое я искал, состоит в том, как заставить git выложить список файлов, которые были изменены в обеих ветвях, которые будут объединены вместе в будущем, по отношению к некоторому общему предку. Как только у меня будет этот список, я смогу использовать другие инструменты сравнения файлов для дальнейшего изучения. Я искал несколько раз, и я до сих пор не нашел то, что я хочу в нативной команде git.
Вот мой обходной путь, на случай, если он кому-нибудь еще поможет:
В этом сценарии у меня есть ветвь с именем QA, в которой много изменений с момента последнего производственного выпуска. Наш последний производственный выпуск помечен как «15.20.1». У меня есть другая ветка разработки под названием new_stuff, которую я хочу объединить с веткой QA. И QA, и new_stuff указывают на коммиты, которые «следуют» (как сообщает gitk) за тегом 15.20.1.
git checkout QA
git pull
git diff 15.20.1 --name-only > QA_files
git checkout new_stuff
git pull
git diff 15.20.1 --name-only > new_stuff_files
comm -12 QA_files new_stuff_files
Вот некоторые обсуждения, которые затрагивают, почему я заинтересован в нацеливании на эти конкретные файлы:
Как я могу доверять Git Merge?
https://softwareengineering.stackexchange.com/questions/199780/how-far-do-you-trust-automerge