我有一个修改后的文件,我想将其尊重到最新提交中的任何内容,但是它“卡住”总是被标记为修改。

$ 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

应该做到这一点。看:

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

你有没有尝试过:

$ 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似乎对此感到满意。然后,我回到了以前的提交,问题已经解决,问题的文件确实消失了。

它不能解释该错误,但是如果该解决方案可以解决它,那是一件好事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top