如何让 git 忽略更改以防万一?

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

以前: File.h

之后: file.h

我并不关心为什么会发生这种情况,但是这会让 git 认为它是一个新文件,然后我必须去把文件名改回来。你能让 Git 忽略大小写变化吗?

[编辑] 我怀疑是 Visual Studio 对这个特定的文件做了一些奇怪的事情,因为它似乎经常发生在我打开并在更改后保存它的时候。然而,我没有任何方法来修复 VS 中的 bug,但是我希望 git 能够更强大一些。

121627 次浏览

自从版本1.5.6以来,在 .git/config[core]部分提供了一个 ignorecase选项

例如加入 ignorecase = true

要改变它只有一个回购,从该文件夹运行:

git config core.ignorecase true

在全球范围内改变它:

git config --global core.ignorecase true

在用于 windows 的 git 版本1.6.1.9中,我发现 config 中的“ gnorecase = true”已经在默认情况下被设置了。

问题中描述的情况现在在 Mac OS X 中再次出现,git 版本 > = 1.7.4(我认为)。解决方法是手动设置 Ignecase = false 并将小写文件重命名(git 是这样改变的,而不是 Visual Studio)为它们的 UusalCase (比如‘ mv MyName MyName’)。

更多信息 给你

您可以使用以下命令强制 git 以仅限于 case 的方式重命名文件:

git mv --cached name.txt NAME.TXT

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

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

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

以前的命令现在似乎已不再适用。

  1. 从控制台: git config core.ignrecase true
  2. 更改文件名的大小写
  3. 承诺
  4. 从控制台: git config core.ignrecase false

第四步解决了检查资本不同的分支机构的问题。

git mv FileName fileNameTemp

那么

git mv fileNameTemp fileName

不需要承诺就能解决你的问题。