Git将目录重命名为另一个案例同名,显示包含的文件总是被修改

时间:2010-08-16 14:25:54

标签: git git-reset

将目录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 bug吗?

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

git version 1.6.4

我正在运行Mac OS X 10.6

2 个答案:

答案 0 :(得分:2)

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

简短步骤:

  1. 删除文件testdirectory / a.html和testdirectory / b.html
  2. git pull
  3. 注意:之前的git pull无法完成导致合并冲突错误。

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

答案 1 :(得分:0)

你可以检查git是否重写了行结尾(git diff显示文件被自己替换,只有不同的行结尾)。在这种情况下,您应该查看What's the best CRLF (carriage return, line feed) handling strategy with Git?