Git - 对文件进行了本地更改,但是,是否需要从远程存储库获取原始副本?

时间:2012-07-16 15:55:14

标签: git github

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

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

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

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

由于

3 个答案:

答案 0 :(得分: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时,您与遥控器保持同步,因此该版本应与遥控器的版本相同。
希望这会有所帮助。

答案 1 :(得分:1)

  1. 在单个文件上从远程存储库中进行git pull是一种不好的做法(除非特别要求,这是非常罕见的)。
  2. 如果您想获得文件的干净副本(或恢复对文件所做的更改),请执行以下操作:

    git checkout filename

  3. 这不仅从您的本地仓库获取副本,而且,副本来自同一分支。

答案 2 :(得分:0)

从 git v2.23 开始,执行此操作的首选方法是:

git restore <filename>