Имеется ли конфликт слияния под рукой, есть ли простой способ отличить общего предка от версии, в которой происходит слияние? - PullRequest
2 голосов
/ 20 апреля 2011

Такие команды, как 'git diff -1 config / route', всегда отличаются от рабочей копии.Мне интересно видеть только "их" различия.

Я могу выгружать файлы и отправлять их вручную следующим образом:

git show :1:config/routes.rb > common
git show :3:config/routes.rb > theirs
diff common theirs

Интересно, есть ли более простой способ.*

Спасибо, Дэн

Ответы [ 3 ]

2 голосов
/ 01 мая 2011
git config merge.conflictstyle diff3

Позволяет вам увидеть общего предка (между ||||| и ====), когда слияние было завершено.

<<<<<<< HEAD
.. from HEAD
|||||||
.. from common ancestor
=======
.. from master
>>>>>>> master

Для получения дополнительной информации см. Следующий блог:

http://blog.wuwon.id.au/2010/09/painless-merge-conflict-resolution-in.html

1 голос
/ 20 апреля 2011

Я получил некоторые решения от канала IRC.Самым простым было:

git diff :1:config/routes.rb :3:config/routes.rb

Другой вариант был:

alias a="git merge-base HEAD MERGE_HEAD"
git diff $(a)..MERGE_HEAD config/routes.rb
0 голосов
/ 20 апреля 2011

Существует git diff -c или git diff --cc, которые вы можете использовать.

Редактировать:

Я думаю, что это может быть не то, что вы хотите:

Подумайте, git diff HEAD...MERGE_HEAD это то, что вы ищете?

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