127

我不太确定这里发生了什么,但有时我的存储库中的特定文件会更改其名称的大小写。例如,:

前:File.h

后:file.h

我真的不在乎为什么会发生这种情况,但这会导致 git 认为它是一个新文件,然后我必须去改回文件名。你能让 git 忽略大小写变化吗?

[编辑] 我怀疑是 Visual Studio 对该特定文件做了一些奇怪的事情,因为它似乎最常发生在我打开并在更改后保存它时。但是,我没有任何方法可以修复 VS 中的错误,但我希望 git 应该更有能力。

4

7 回答 7

209

从 1.5.6 版开始,ignorecase[core].git/config

例如添加ignorecase = true

要仅将其更改为一个存储库,请从该文件夹运行:

git config core.ignorecase true

要全局更改它:

git config --global core.ignorecase true
于 2008-09-09T23:14:28.667 回答
17

您可以使用以下命令强制 git 以仅区分大小写的方式重命名文件:

git mv --cached name.txt NAME.TXT

请注意,这不会更改 Windows 分区上签出副本中文件的大小写,但 git 会记录大小写更改,您可以提交该更改。未来的结帐将使用新的外壳。

于 2016-07-10T05:12:31.513 回答
14

在 Windows 的 git 版本 1.6.1.9 中,我发现默认情况下已经设置了配置中的“ignorecase=true”。

于 2009-02-11T05:54:13.850 回答
5

问题中描述的情况现在在 Mac OS X 上再次出现,git version >= 1.7.4(我认为)。解决方法是设置您的 ignorecase=false 并手动将小写文件(git 更改为这种方式,而不是 Visual Studio)重命名为它们的 UsualCase(即'mv myname MyName')。

更多信息在这里

于 2011-11-11T13:49:54.647 回答
2

要强制 git 识别文件大小写的更改,可以运行此命令。

  1. 随意更改文件大小写
  2. git mv -f mynewapp.sln MyNewApp.sln

以前的命令现在似乎已被弃用。

于 2020-10-08T21:20:53.870 回答
0
  1. 从控制台: git config core.ignorecase true
  2. 更改文件名大小写
  3. 犯罪
  4. 从控制台: git config core.ignorecase false

第 4 步修复了检查具有不同大小写的分支的问题。

于 2020-12-22T15:13:23.867 回答
0

git mv FileName fileNameTemp

然后

git mv fileNameTemp fileName

无需提交即可解决您的问题。

于 2021-06-29T21:04:08.033 回答