我不太确定这里发生了什么,但有时我的存储库中的特定文件会改变它的名称。 。e.g,:
之前:File.h
之后:file.h
我真的不在乎为什么会这样,但这会导致git认为它是一个新文件,然后我必须重新更改文件名。你可以让git忽略大小写改变吗?
[编辑] 我怀疑它是Visual Studio对该特定文件做了一些奇怪的事情,因为它似乎最常发生在我打开并在更改后保存它。我没有办法修复VS中的错误,但我希望git应该更有能力。
答案 0 :(得分:152)
从版本1.5.6开始,ignorecase
[core]
部分提供了.git/config
选项
e.g。添加ignorecase = true
要仅为一个仓库更改它,请从该文件夹运行:
git config core.ignorecase true
全局更改:
git config --global core.ignorecase true
答案 1 :(得分:11)
在Windows的git版本1.6.1.9中,我发现配置中的“ignorecase = true”已默认设置。
答案 2 :(得分:9)
您可以使用此命令强制git以仅大小写的方式重命名文件:
git mv --cached name.txt NAME.TXT
请注意,这不会更改Windows分区上签出副本中文件的大小写,但git会记录大小写更改,您可以提交更改。未来的结账将使用新的套管。
答案 3 :(得分:4)
问题中描述的情况现在重新出现在Mac OS X上,git version> = 1.7.4(我认为)。解决方法是设置ignorecase = false并将小写文件(git改变了这种方式,而不是Visual Studio)重命名为手动(即“mv myname MyName”)。
更多信息here。
答案 4 :(得分:0)
要强制git识别到文件的大小写更改,可以运行此命令。
git mv -f mynewapp.sln MyNewApp.sln
以前的命令现在似乎已被弃用。
答案 5 :(得分:0)
第 4 步解决了检查不同大小写分支的问题。
答案 6 :(得分:0)
git mv FileName fileNameTemp
然后
git mv fileNameTemp fileName
无需提交即可解决您的问题。