1

将目录 TestDirectory 重命名为小写(testdirectory)后,它的所有文件(a.html 和 b.html)都显示为已修改,甚至 git reset --hard 也不会重置工作树。

Git总是说:

#   modified:   TestDirectory/a.html
#   modified:   TestDirectory/b.html

无法将工作树重置为未修改状态,以下命令均无帮助:

git reset --hard

git checkout -- TestDirectory/a.html

我不明白为什么会发生这种情况以及我能做什么。是 git 错误吗?

重命名不是我添加的,而是另一个 git 用户添加的。

git 版本 1.6.4

我正在运行 Mac OS X 10.6

4

2 回答 2

2

玩了大约一个小时后,我的解决方案是手动删除 testdirectory/a.html 和 testdirectory/b.html - 之后 git 将它们报告为“已删除”(我实际上不想删除它们)但它让我有能力做git pull 并在其他用户修复问题时获取更改。

简短的步骤:

  1. 删除文件 testdirectory/a.html 和 testdirectory/b.html
  2. git 拉

注意:以前无法完成 git pull 导致合并冲突错误。

我不清楚发生了什么,但它解决了我的情况。在我看来,Git 仍然像 Perl 一样复杂,命令主要反映 git 的内部而不是用户意图:-)

于 2010-08-16T15:30:55.310 回答
0

您可以检查 git 是否重写了行尾(git diff 显示文件被自己替换,只有不同的行尾)。在这种情况下,您应该查看Git 的最佳 CRLF(回车、换行)处理策略是什么?.

于 2010-08-16T15:12:09.623 回答