Как я могу сказать git игнорировать мой локальный файл и взять его из удаленной ветви, не пытаясь объединить и вызвать конфликты?
Как я могу сказать git игнорировать мой локальный файл и взять его из удаленной ветви, не пытаясь объединить и вызвать конфликты?
Ответы:
Это самое безопасное решение:
git stash
Теперь вы можете делать все, что хотите, не боясь конфликтов.
Например:
git checkout origin/master
Если вы хотите включить удаленные изменения в основную ветку, вы можете сделать:
git reset --hard origin/master
Это заставит вас перейти "master", чтобы указать на "origin / master".
git stash; git fetch origin; git reset --hard origin/master
git stash? git stash listпусто.
Я понимаю вопрос как этот: вы хотите полностью заменить содержимое одного файла (или выделения) из апстрима. Вы не хотите напрямую влиять на индекс (поэтому вы должны пройти через add + commit как обычно).
Просто делай
git checkout remote/branch -- a/file b/another/file
Если вы хотите сделать это для обширных поддеревьев и вместо этого хотите напрямую воздействовать на индекс, используйте
git read-tree remote/branch:subdir/
Затем вы можете (необязательно) обновить свою рабочую копию, выполнив
git checkout-index -u --force
Насколько я понимаю, например, вы неправильно сохранили файл, который вы обновили, только для тестирования. Затем, когда вы запускаете «git status», файл отображается как «Modified», и вы произносите несколько плохих слов. Вы просто хотите вернуть старую версию и продолжать работать в обычном режиме.
В этом случае вы можете просто запустить следующую команду:
git checkout -- path/filename
Я бы извлек удаленный файл из «master» (репозиторий remote / origin) следующим образом:
git checkout master <FileWithPath>
Пример: основные компоненты git checkout / indexTest.html
Используйте опцию -sили в --strategyсочетании с -Xопцией. В вашем конкретном вопросе вы хотите сохранить все удаленные файлы и заменить локальные файлы с тем же именем.
Заменить конфликты с удаленной версией
git merge -s recursive -Xtheirs upstream/master
будет использовать версию удаленного репо всех конфликтующих файлов.
Заменить конфликты локальной версией
git merge -s recursive -Xours upstream/master
будет использовать локальную версию репо всех конфликтующих файлов.
git merge -s their.