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