Мне нужно представить команде, какие изменения я сделал во время разрешения конфликта слияния.Показать конфликт diff часть слияния
Я знаю, что это тяжело, но я уверен, что это возможно. Я уже пробовал git show -m
и git show -c
.
Мне нужно представить команде, какие изменения я сделал во время разрешения конфликта слияния.Показать конфликт diff часть слияния
Я знаю, что это тяжело, но я уверен, что это возможно. Я уже пробовал git show -m
и git show -c
.
Посмотрите на хэш (или метки) от слияния фиксации (коммит, который имеет несколько родителей) и сделать:
git diff hash hash^1 hash^2
Это выведет 3 путь дифференциала изменений.
hash^
(или hash^1
) ссылается на первый родительской фиксацию hash
hash^2
ссылок вторых родительской фиксации hash
Если вы используете стандартный инструмент gitk
и нажимаете на фиксацию слияния, в нижней левой панели отображаются разрешения конфликтов.
как gitk делает это? – brauliobo
@brauliobo Я бы предположил, выполнив 'git diff hash hash^1 hash^2', где' hash' является хешем коммита слияния. –
_ Кроме того, что 'git diff --cc hash hash^1 hash^2' будет форматировать diff так же, как отображает его gitk'. Не уверен, какой формат вывода предпочтительнее OP, хотя ... Фактически, неважно ... 'git diff' делает это по умолчанию, кажется, когда вы даете ему три хэша ... – twalberg
спасибо! сделал псевдоним: 'dc ="! f() {HASH = $ 1; shift 1; git d --cc $ HASH $ HASH^1 $ HASH^2 $ @;}; f "' – brauliobo
Когда я использую эту строку, Я получаю 'fatal: неопределенный аргумент 'hash': неизвестная ревизия или путь не в рабочем дереве. Используйте '-' для разделения путей от ревизий, например: git [ ...] - [ ...]> ' –
HelloGoodbye