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