无法使用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
没有,但它是值得一试。