远程仓库似乎包含两个名称相同的文件,第一个字母除外。这导致我的系统上的文件覆盖,这导致了下面的问题。
它似乎与换行没有任何关系,但我还没有找到解释。这就是发生的事情。
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。
答案 0 :(得分:3)
您可以尝试在global level设置此设置(注意:I also like having it set to false)
$ git config --global core.autocrlf false
然后再次克隆,看看这项工作是否更好。
要注意的另一个设置是:ignorecase true
(也设置为全局级别)
请参阅此SO question作为示例,并this one说明可能出现的问题。