无法使用Git将文件重置为特定的提交

我有一个修改后的文件,我想要在最新的提交中修改任何内容,但它总是被标记为已修改。

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   index.php
#
no changes added to commit (use "git add" and/or "git commit -a")

然后我尝试:

$git checkout -- index.php

但是git状态的输出仍然是一样的。 然后我尝试:

$git reset --hard master
HEAD is now at 02c9613 test commit message

并且git status的输出仍然是一样的。

关于如何摆脱该文件中假定的更改的任何想法?


你可能会遇到一个空白问题,试试git config --global apply.whitespace nowarn

如果这不起作用,我会说你遇到了一个错误。 保存本地克隆以供将来参考(我希望它不是太大)并创建一个错误报告。 特别是以下事实:

  • 你没有自己修改文件
  • 其他文件不显示此问题
  • 有迹象表明,这可能不是你在这里犯下的错误。 无论您是否可以在干净的回购站点上重现问题,都将成为有趣的信息。


    你必须从“索引”中删除index.php。 然后你可以签出不同的版本。

    git rm --cached index.php
    

    应该做的伎俩。 看到:

    http://www.kernel.org/pub/software/scm/git/docs/git-rm.html


    你有没有尝试过:

    $ git checkout master -f -- index.php
    

    要么

    $ git checkout master -f
    

    我不明白为什么这会工作,如果reset没有,但它是值得一试。

    链接地址: http://www.djcxy.com/p/92381.html

    上一篇: Can't reset a file to a specific commit using Git

    下一篇: git submodule commit/push/pull