无法使用git将文件重置为特定的提交
-
10-10-2019 - |
题
我有一个修改后的文件,我想将其尊重到最新提交中的任何内容,但是它“卡住”总是被标记为修改。
$ 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状态的输出仍然相同。
关于我如何摆脱该文件中假定的更改的任何想法?
解决方案
您可能正在遇到 空间问题 尝试 git config --global apply.whitespace nowarn
为了那个原因。
如果那不起作用,我会说您遇到了一个错误。保存本地克隆以备将来参考(我希望它不太大)并创建一个错误报告。特别是事实:
- 您没有自己修改文件
- 其他文件没有显示此问题
是迹象表明可能不是您在这里犯错的迹象。您是否可以在干净的存储库中重现问题也是有趣的信息。
其他提示
您必须从“索引”中删除index.php。然后,您可以检查其他版本吗?
git rm --cached index.php
应该做到这一点。看:
你有没有尝试过:
$ git checkout master -f -- index.php
或者
$ git checkout master -f
?
我看不出为什么这会起作用 reset
没有,但值得一试。
尝试 git ls-files -m | xargs -i git update-index --assume-unchanged "{}"
FWIW,我能够通过删除显示已修改的目录中的.git子目录来解决问题。一旦.git子目录(由于子目录是。如果所讨论的文件与无关的文件夹在同一文件夹中,则可能也会产生效果。
我被困在同样的混乱中。我有一些我无法摆脱的文件 git status
. 。尝试以任何方式重置或结帐文件后,我决定实际添加有问题的文件并提交它们。 Git似乎对此感到满意。然后,我回到了以前的提交,问题已经解决,问题的文件确实消失了。
它不能解释该错误,但是如果该解决方案可以解决它,那是一件好事。
不隶属于 StackOverflow