Я выполняю перезагрузку в git, и один конфликт, который я получаю, - это «оба добавлены», то есть точно такое же имя файла было добавлено независимо в моей ветке и в ветке, в которой я выполняю перезагрузку. git status
говорит мне:
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both added: src/MyFile.cs
У меня вопрос, как мне решить эту проблему? Должен ли я использовать инструмент слияния или есть способ сделать это просто из командной строки? Если да git rm src/MyFile.cs
, то как git узнает, какую версию файла я хочу удалить, а какую оставить?
git checkout --ours someFile
Может показаться, что он ничего не сделал при выполнении git status. Только не забудьте сделать это потом.git add someFile
git status
Иногда меня сбивает с толку использование параметров
--theirs
и--ours
, чтобы определить, откуда будет взят файл. Большую часть времени мой будет в ветке, которую я перебазирую, на которую ссылается--theirs
!Вы также можете использовать
git checkout <tree-ish> -- src/MyFile.cs
Где
<tree-ish>
можно заменить либо именем ветки, либо идентификатором фиксации, содержащим файл, который вы хотите сохранить.git checkout 6a363d8 -- src/MyFile.cs
git checkout my_branch -- src/MyFile.cs
git checkout HEAD -- src/MyFile.cs
источник
Когда делаешь ...
git checkout --ours someFile
Может показаться, что при выполнении git status ничего не произошло.
Только не забудьте сделать это потом.
источник