Git стратегия слияния "их" не разрешает изменение/удаление конфликта
При выполнении git merge
со следующими параметрами:
git merge -X theirs master
Иногда возникают конфликтующие файлы:
CONFLICT (изменить/удалить): File_A.java удалено в главном файле и изменено в HEAD. Версия HEAD файла File_A.java оставлена в дереве.
Однако я хотел бы, чтобы опция -X theirs
была распознана в этих случаях и использовала версию изменения theirs
, которая предназначена для удаления файла .
Есть ли причина, по которой этот тип конфликта не разрешен автоматически, тем более, что я предоставляю определенную стратегию слияния, которая предполагает, что он должен удалить файл?
Кроме того, как (если возможно) я могу обновить команду merge
, чтобы использовать версию этого типа конфликта theirs
?
Ответы
Ответ 1
Похоже, что theirs
вариант recursive
стратегии (это то, что вы на самом деле используете, см. [1]) не влияет на слияние деревьев, оно используется только для слияния содержимого файлов, когда оба файла изменены только. Я действительно не знаю, есть ли какая-либо опция команды слияния, которая может делать то, что вы хотите. Вы можете попробовать создать скрипт, который сканирует конфликтующие файлы (со git status --porcelain
), а затем либо удаляет файл (git rm --force <file>
), либо получает его удаленную версию (git checkout --theirs <file>
)
[1] https://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_merge_strategies
Ответ 2
Немного поздно, но может быть полезно, вы можете разрешить этот тип конфликта с помощью:
git merge -X theirs master
git diff --name-only --diff-filter=U | xargs git rm
По сути, это означает "удалить все незакрепленные файлы" во время разрешения конфликта.
Ответ 3
Далее, как (если возможно) я могу обновить команду слияния, чтобы использовать их версию этого типа конфликта?
Вам нужно будет использовать Объединить драйверы.
Вам нужно будет создать свой собственный драйвер и confutation в файле .gitattribute
.
Вот список связанных вопросов, которые могут быть полезными для вас.
Каждый из них придает этому вопросу форму разного угла