git:从仓库中检出文件后,文件立即显示为已修改状态

时间:2018-07-16 14:51:00

标签: git git-checkout

jen.test@wswp0 MINGW64 /c/inetpub/wwwroot/2.0 (master)

$ git fetch


jen.test@wswp0 MINGW64 /c/inetpub/wwwroot/2.0 (master)

$ git checkout origin/master -- testFile.php


jen.test@wswp0 MINGW64 /c/inetpub/wwwroot/2.0 (master)

$ git status testFile.php

On branch master

Changes to be committed:

  (use "git reset HEAD <file>..." to unstage)

        modified:   testFile.php


jen.test@wswp0 MINGW64 /c/inetpub/wwwroot/2.0 (master)

$

这就是我想要做的-我已经从另一台计算机上更改了多个文件,包括testFile.php。这些文件被提交到仓库,我执行了“ git push origin master”。我想从仓库中获取最新的testFile.php,而不是其他文件。

1 个答案:

答案 0 :(得分:1)

我认为您执行的命令可能会引起一些混乱。完成git fetch后,您确实更新了跟踪分支origin/master。但是,您没有实际上没有更新本地master分支,因为您从未合并过git pull。命令:

git checkout origin/master -- testFile.php

实际上使用来自另一个分支的版本更新testFile.php的本地工作副本。这似乎令人困惑,但是在您执行此操作时,本地master和分支origin/master并不是同一个人。

然后,git status报告说,此文件相对于本地master分支的HEAD已更改。