如何让git忽略case中的更改?

vxqlmq5t  于 2023-06-20  发布在  Git
关注(0)|答案(7)|浏览(165)

我不太确定这里发生了什么,但有时我的存储库中的某个特定文件会更改其名称的大小写。例如:
前:File.h
后:file.h
我并不关心为什么会发生这种情况,但这会导致git认为这是一个新文件,然后我必须去把文件名改回来。你能让git忽略大小写变化吗?

  • *[edit]**我怀疑是Visual Studio对那个特定的文件做了一些奇怪的事情,因为当我在更改后打开并保存它时,它似乎经常发生。我没有任何方法来修复VS中的bug,但是我希望git应该更有能力。
hpcdzsge

hpcdzsge1#

从版本1.5.6开始,在.git/config[core]部分提供了一个ignorecase选项
例如,添加ignorecase = true
要仅为一个存储库更改它,请从该文件夹中运行:

git config core.ignorecase true

要全局更改它,请执行以下操作:

git config --global core.ignorecase true
kgsdhlau

kgsdhlau2#

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

git mv --cached name.txt NAME.TXT

注意,这不会改变Windows分区上检出副本中文件的大小写,但git会记录大小写变化,您可以提交该变化。未来的检查将使用新的套管。

dgenwo3n

dgenwo3n3#

在git版本1.6.1.9 for windows中,我发现配置中的“ignorecase=true”已经被默认设置。

9njqaruj

9njqaruj4#

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

tcbh2hod

tcbh2hod5#

要强制git识别文件的大小写变化,可以运行以下命令。
1.随意更改文件大小写

  1. git mv -f mynewapp.sln MyNewApp.sln
    以前的命令现在似乎不推荐使用。
t9aqgxwy

t9aqgxwy6#

1.从控制台:git config core.ignorecase true
1.更改文件名大写
1.提交
1.从控制台:git config core.ignorecase false
步骤4修正了检查不同资本化的分支的问题。

monwx1rj

monwx1rj7#

可能的发现(截至VS 2019年11月16日):如果SLN文件中项目文件的路径与其他任何地方的情况不同,这也可能触发条件。我们通过右键单击解决方案中的项目并选择“在文件资源管理器中打开文件夹”找到了这一点。我们注意到文件资源管理器顶部的路径是SLN文件中的情况,而不是文件系统中的情况,如果您只是通过文件资源管理器自己打开这个路径。所以我们怀疑SLN中的这个路径被传递给了一些git操作,而另一个版本的路径是在其他git操作时间传递的。或者git操作没有收到核心。忽略爱。

相关问题