Как я могу просмотреть слияние в Git? - PullRequest
350 голосов
/ 28 апреля 2011

У меня есть ветка git (например, mainline), и я хочу объединиться в другую ветку разработки. Или я?

Чтобы решить, действительно ли я хочу объединить эту ветку, я хотел бы увидеть какой-то предварительный просмотр того, что слияние сделает. Желательно с возможностью видеть список коммитов, которые применяются.

Пока лучшее, что я могу придумать, это merge --no-ff --no-commit, а затем diff HEAD.

Ответы [ 11 ]

0 голосов
/ 21 октября 2015

Я не хочу использовать команду 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

...