【问题标题】:`git checkout` not resetting file`git checkout`不重置文件
【发布时间】:2020-03-15 07:33:42
【问题描述】:

这是我的情况。我在分支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 中将此文件列为“已修改”,但在git checkout 中无法识别?

【问题讨论】:

    标签: git git-branch git-checkout


    【解决方案1】:

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

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

    【讨论】:

    • 我试过了,得到了git: 'restore' is not a git command. See 'git --help'.
    • 你运行的是什么版本的 git?
    • git restore 是在 2.23.0 中添加的,请确保您至少安装了该版本。
    • 2.17.1.好的,我试试更新
    • 您可以选择git reset HEAD -- my_folder/my_file.py。取消暂存后,只需执行 git checkout -- my_folder/my_file.py 即可放弃更改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-27
    • 2015-05-14
    • 2018-08-17
    • 2014-05-03
    • 1970-01-01
    • 2010-12-03
    • 2019-02-02
    相关资源
    最近更新 更多