`git checkout` 不重置文件

`git checkout` not resetting file

这是我的情况。我在分支 my_branch 上,不小心修改了一个文件(并暂存了这些更改),并想将此文件重置为 master 上的状态。但是,如果我使用 git checkout 这样做,我会收到错误消息(详情请参见下文)。

$ git branch
* my_branch
  master

$ git fetch origin master
From [MY REMOTE]
 * branch            master     -> FETCH_HEAD

$ git status
modified:   my_folder/my_file.py

$ git checkout origin/master -- my_folder/my_file.py
error: pathspec 'my_folder/my_file.py' did not match any file(s) known to git.

我应该如何使用 git checkout?是什么导致 git 在 git status 中将此文件列为 'modified',但在 git checkout 期间无法识别?

如果您已在本地修改文件并将其暂存,则需要执行 git restore --staged my_folder/my_file.py 取消暂存该文件。

文件不再暂存后,您可以git restore my_folder/my_file.py放弃所有更改。