Когда вы разрешаете конфликт, затем выполняете изменения, затем выполняете git diff, он показывает вам два столбца + и -s, один для "наших" и один для "их". Учитывая объединение слияния в истории репо git, как я вижу это разрешение, которое было сделано кем-то другим? В других случаях я видел это раньше (в gitk, я думаю), но я не могу определить его для этого SHA1, который у меня есть.
Как вы видите/показываете разрешение конфликта слиянием git, которое было выполнено, учитывая фиксацию слияния SHA1?
Ответ 1
Если вам известен ref, то git show <MERGE_COMMIT>
покажет вам выполненное разрешение (если оно есть) для фиксации слияния.
Для журнала используйте git log -p -c
или git log -p --cc
. Из manpage git log:
-c
With this option, diff output for a merge commit shows the differences from each
of the parents to the merge result simultaneously instead of showing pairwise
diff between a parent and the result one at a time. Furthermore, it lists only
files which were modified from all parents.
--cc
This flag implies the -c option and further compresses the patch output by
omitting uninteresting hunks whose contents in the parents have only two
variants and the merge result picks one of them without modification.
Ответ 2
Незначительный bikeshed: вы можете использовать diff3 или kdiff3, чтобы увидеть слияние в обратном направлении, особенно если это было слияние (git style) 'evil', где было добавлено вторичное изменение для разрешения конфликта. (следите за взрывающейся головой, пытаясь понять, как она "отступает" от изменений; -)
Очевидно, что "базовая" фиксация будет объединенной фиксацией.