Принудительно перезаписать локальный файл тем, что находится в исходном репо?


224

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

Ответы:


443

Если вы хотите перезаписать только один файл:

git fetch
git checkout origin/master <filepath>

Если вы хотите перезаписать все измененные файлы:

git fetch
git reset --hard origin/master

(Это предполагает, что вы работаете masterлокально, и вам нужны изменения в источнике master- если вы находитесь на ветке, замените это вместо.)


Это сделало обратное. Он перезаписал хранилище с моими локальными файлами по ошибке.
C_Rod

git fetch git reset --hard origin/masterили/<branch name>
Адриан Филипеску

Это здорово ... Именно то, что я искал. Спасибо
Тьяго Пассос

Не уверен, что сделал @C_Rod, но это не может повлиять на хранилище
Брэд Мейс

26

Простейшая версия, если вы работаете с той же веткой, в которой находится нужный файл:

git checkout path/to/file,

Я делаю это так часто, что у меня установлен псевдоним gc='git checkout'.


4
Просто, элегантно и делает свое дело. Просто помните, чтобы «git fetch» ​​раньше.
Альмир Кампос

6
git checkout path/to/fileработал на меня. Кроме того, я нашел эту диаграмму очень полезной для концептуального понимания того, что git checkoutделает. ссылка
Кейл Суини

9

Это сработало для меня:

git reset HEAD <filename>

Я видел довольно много разных решений, но это самое эффективное, спасибо
Calvin Zhou

3

Полная синхронизация имеет несколько задач:

  • отмена изменений
  • удаление новых файлов
  • получить последнюю информацию из удаленного хранилища

git reset HEAD --hard

git clean -f

мастер происхождения git pull

Или, что я предпочитаю, так это то, что я могу создать новую ветку с последними с удаленного доступа, используя

git checkout origin/master -b <new branch name>

origin - моя ссылка на удаленный репозиторий, а master - мое имя для ветки. Они могут отличаться от ваших.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.