如何让git忽略大小写的变化?

时间:2008-09-09 21:24:53

标签: windows git

我不太确定这里发生了什么,但有时我的存储库中的特定文件会改变它的名称。 。e.g,:

之前:File.h

之后:file.h

我真的不在乎为什么会这样,但这会导致git认为它是一个新文件,然后我必须重新更改文件名。你可以让git忽略大小写改变吗?

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

7 个答案:

答案 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识别到文件的大小写更改,可以运行此命令。

  1. 根据需要更改文件大小写
  2. git mv -f mynewapp.sln MyNewApp.sln

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

答案 5 :(得分:0)

  1. 来自控制台:git config core.ignorecase true
  2. 更改文件名的大小写
  3. 提交
  4. 来自控制台:git config core.ignorecase false

第 4 步解决了检查不同大小写分支的问题。

答案 6 :(得分:0)

git mv FileName fileNameTemp

然后

git mv fileNameTemp fileName

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