Git - внесено локальное изменение в файл, но нужно ли вернуть оригинальную копию из удаленного репозитория?

62
9

Я внес изменения в свой локальный мастер в один файл. Я проверил его из другого ветки.

I am in master branch
git checkout development /foo/file1.txt

Мне нужно вернуться к исходному файлу. Я попытался сделать git pull, но он сказал, что я уже в курсе. Я не добавил или не зафиксировал изменения.

Какую команду я использую для получения чистой/оригинальной копии файла из репозитория? Или исходная копия из моего локального хранилища?

благодаря

спросил(а) 2021-01-19T17:36:20+03:00 2 месяца, 3 недели назад
1
Решение
107

Если я правильно понял, у вас есть локально измененный файл, который вы не добавили или не сделали. Если вы запустите git status вы должны ожидать увидеть

# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo/file1.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

Если это так, git фактически дает вам намек на вывод состояния. Все, что вам нужно сделать, это git checkout -- foo/file1.txt. Это вытеснит изменения, внесенные вами локально, и вернет содержимое, указанное вами. Поскольку git сказал вам, что вы в курсе удаленной работы, когда вы делаете git pull, это должна быть такая же версия, как у пульта.
Надеюсь это поможет.

ответил(а) 2021-01-19T17:36:20+03:00 2 месяца, 3 недели назад
63

Плохая практика - сделать git pull из удаленного репозитория в одном файле (если это специально не требуется, что очень редко).

Если вы хотите просто получить чистую копию файла (или отменить изменения, внесенные в файл), выполните следующие действия:

git checkout имя_файла


Это не только получает копию из вашего локального репо, но и копируется из той же ветки.

ответил(а) 2021-01-19T17:36:20+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема