Git, должен тянуть, знать, что будут конфликты, но локальная версия не имеет значения

Я знаю, что при вытягивании будут конфликты, но я уже знаю, что версия репозитория лучше. Как мне разрешить все конфликты в командной строке с помощью команды git

что-то вроде $> git resolve conflict with theirs или что-то

4 ответа

Решение

Если вы не хотите сохранять свои изменения, то тянуть - неправильное действие. Если версия репозитория однозначно лучше, вы можете просто получить и сбросить.

Например

git fetch

# Assuming my branch was based on origin/master,
# throw my changes away.
git reset --hard origin/master

Очевидно, будьте осторожны с этим, так как вы можете потерять незафиксированные изменения. Вы можете сделать простой git reset origin/master и удалите свои локальные изменения тщательно вручную.

Можете ли вы по-прежнему объединять ваш HEAD с удаленным, не удаляя полностью изменения, но всегда разрешая конфликты в пользу удаленного:

git pull -s recursive -Xtheirs <remote-ref>

Но будьте осторожны - ваши изменения будут частично сохранены, а частично перезаписаны. Это может быть нормально, если вы ожидаете, что они будут перезаписаны в одной части дерева и сохранены в другой, но будьте очень осторожны с результирующим кодом, обязательно просмотрите его и сравните с удаленной версией.

Указав стратегию слияния, вы сможете сделать это:

git fetch
git merge -s recursive -Xtheirs remotes/origin/branch_name

или же

git pull -s recursive -Xtheirs origin master

Стараться сделать

git clean
git pull

если не помогло, то попробуй

git reset --hard HEAD
git pull
Другие вопросы по тегам