git status在新克隆的repo中报告已修改的文件

时间:2010-07-07 13:29:06

标签: git case-sensitive case-insensitive

解决

远程仓库似乎包含两个名称相同的文件,第一个字母除外。这导致我的系统上的文件覆盖,这导致了下面的问题。

更新

它似乎与换行没有任何关系,但我还没有找到解释。这就是发生的事情。

git status报告FileStartingWithCapitalLetter.php已被修改

另一方面,浏览我的不区分大小写的文件系统,显示fileStartingWithCapitalLetter.php,它实际上以小写“f”开头。

git diff FileStartingWithCapitalLetter.php

显示了这一点(难以发现差异,它是重定向中的R,这让我认为它与CRLF有关):

diff --git a/test/functional/frontend/RedirectActionsTest.php b/test/functional/frontend/RedirectActionsTest.php
index 66e1fef..c574583 100644
--- a/test/functional/frontend/RedirectActionsTest.php
+++ b/test/functional/frontend/RedirectActionsTest.php
@@ -5,10 +5,10 @@ include(dirname(__FILE__).'/../../bootstrap/functional.php');
 $browser = new sfTestFunctional(new sfBrowser());

 $browser->
-  get('/Redirect/index')->
+  get('/redirect/index')->

   with('request')->begin()->
-    isParameter('module', 'Redirect')->
+    isParameter('module', 'redirect')->
     isParameter('action', 'index')->
   end()->

另一方面,git diff fileStartingWithCapitalLetter.php(小写f)显示没有变化。

对此有什么解决方法?

旧问题

我克隆了一个git repo然后立即执行了git status。看到它报告修改过的文件并不奇怪,因为它发生在我之前。从Windows机器提交的CRLF行结尾(我在OS X上)。

现在,让我感到惊讶的是,这不起作用:

$ git config core.autocrlf false
$ rm .git/index
$ git reset
Unstaged changes after reset:
M  test/functional/frontend/RedirectActionsTest.php

有没有人对什么是错的以及如何解决它有任何想法?我正在使用Git 1.7.0.2。

1 个答案:

答案 0 :(得分:3)

您可以尝试在global level设置此设置(注意:I also like having it set to false

$ git config --global core.autocrlf false

然后再次克隆,看看这项工作是否更好。

要注意的另一个设置是:ignorecase true(也设置为全局级别) 请参阅此SO question作为示例,并this one说明可能出现的问题。