Подтвердить что ты не робот

Git стратегия слияния "их" не разрешает изменение/удаление конфликта

При выполнении git merge со следующими параметрами:

git merge -X theirs master

Иногда возникают конфликтующие файлы:

CONFLICT (изменить/удалить): File_A.java удалено в главном файле и изменено в HEAD. Версия HEAD файла File_A.java оставлена ​​в дереве.

Однако я хотел бы, чтобы опция -X theirs была распознана в этих случаях и использовала версию изменения theirs, которая предназначена для удаления файла .

Есть ли причина, по которой этот тип конфликта не разрешен автоматически, тем более, что я предоставляю определенную стратегию слияния, которая предполагает, что он должен удалить файл?

Кроме того, как (если возможно) я могу обновить команду merge, чтобы использовать версию этого типа конфликта theirs?

4b9b3361

Ответ 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.


Вот список связанных вопросов, которые могут быть полезными для вас.
Каждый из них придает этому вопросу форму разного угла