3

我在一个文件上对我的本地主机进行了更改。我从另一个分支检查了它。

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

我需要恢复到原始文件。我试图做 git pull 但它说我已经是最新的了。我没有添加或提交更改。

我使用什么命令从存储库中获取文件的干净/原始副本?还是我本地存储库的原始副本?

谢谢

4

3 回答 3

7

如果我理解正确,您有一个尚未添加或提交的本地修改文件。如果你跑步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,因此这应该与遥控器的版本相同。
希望这可以帮助。

于 2012-07-16T16:43:49.960 回答
1
  1. 在单个文件上从远程存储库进行 git pull 是一种不好的做法(除非特别需要,这非常罕见)。
  2. 如果您只想获取文件的干净副本(或恢复对文件所做的更改),请执行以下操作:

    git checkout 文件名

这不仅从您的本地 repo 获取副本,而且从同一个分支获取副本。

于 2016-05-24T07:02:26.300 回答
0

由于 git v2.23 这样做的首选方法是:

git restore <filename>
于 2021-07-27T23:52:27.500 回答