Git区分大小写的Windows 7

时间:2015-05-20 20:19:31

标签: git staging working-directory

我正在学习git所以如果以前已经回答过,请原谅我。我在工作目录中添加了一个文件README.txtgit status告诉我这是唯一未跟踪的文件。然后我跑了git add readme.txt。现在运行git status再次告诉我README.txt是唯一未跟踪的文件。但是,如果我然后运行git add README.txt它现在显示为新文件。这是否意味着git正在添加不存在的文件readme.txt的快照?我不明白,因为我认为git不区分大小写。

2 个答案:

答案 0 :(得分:2)

  

我认为git不区分大小写。

不是真的。有一个配置设置core.ignorecase,通常在Windows中设置为true;文档说

  

如果为true,则此选项启用各种变通方法以使Git更好地工作   在不区分大小写的文件系统上

但是,说Git不区分大小写还有很长的路要走。我复制了你所做的,我认为你发现了一个错误。

$ git checkout -b test 
Switched to a new branch 'test'

$ echo hello > README.txt

$ git status 
On branch test 
Untracked files:   (use "git add <file>..." to include in what will be committed)

        README.txt

nothing added to commit but untracked files present (use "git add" to track)

$ git add readme.txt

$ git status 
On branch test 
Untracked files:   (use "git add <file>..." to include in what will be committed)

        README.txt

nothing added to commit but untracked files present (use "git add" to track)

$ git diff --cached

$

应该发生以下两件事之一:当我(和你)添加它时,Git应该抱怨readme.txt不存在,或者它应该将README.txt的内容添加到缓存。它没有执行上述任何操作:git add没有错误,git diff --cached没有列出任何结果。

因此,即使core.ignorecase设置为true,我的建议也是将Git命令视为区分大小写。

答案 1 :(得分:1)

您的NTFS下面不区分大小写。所以,如果git询问&#34; README.txt&#34;仍然存在,它被告知&#34;是&#34;即使你现在有&#34; readme.txt&#34;。

我建议告诉git完全忘记&#34; README.txt&#34;与

git rm --cached README.txt

然后再次添加readme.txt。