我在一个文件上对我的本地主机进行了更改。我从另一个分支检查了它。
I am in master branch
git checkout development /foo/file1.txt
我需要恢复到原始文件。我试图做 git pull 但它说我已经是最新的了。我没有添加或提交更改。
我使用什么命令从存储库中获取文件的干净/原始副本?还是我本地存储库的原始副本?
谢谢
如果我理解正确,您有一个尚未添加或提交的本地修改文件。如果你跑步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
,因此这应该与遥控器的版本相同。
希望这可以帮助。
如果您只想获取文件的干净副本(或恢复对文件所做的更改),请执行以下操作:
git checkout 文件名
这不仅从您的本地 repo 获取副本,而且从同一个分支获取副本。
由于 git v2.23 这样做的首选方法是:
git restore <filename>