Предположим, что я получаю конфликт слияния на foo/bar.txt
при выполнении этого:
$ git checkout A
$ git merge B
Я хотел бы автоматически разрешить конфликт, взяв foo/bar.txt
из ветки A. (Я знаю, что делаю, и мне это нужно. Версия в ветке B неверна, и мне все равно о потере изменений в рабочем дереве в этом случае.) Кажется, что я могу сделать это, выполнив следующие команды:
$ git reset foo/bar.txt
$ git checkout foo/bar.txt
Есть ли более простое решение с одной командой?
К сожалению, эти команды меняют foo/bar.txt
, даже если конфликт отсутствует, и я не хочу этого. Если нет конфликта, я хочу сохранить foo/bar.txt
в любом состоянии git merge B
.
Итак, мне нужна команда оболочки Unix, которая обнаруживает, есть ли конфликт в foo/bar.txt
, и если есть, он разрешит конфликт, взяв версию foo/bar.txt
из текущей ветки. Он не будет делать ничего другого, то есть не будет изменять другие файлы, он не будет фиксировать изменения, и он не изменит foo/bar.txt
, если в этом файле нет конфликта.