Windows 如何让git在这种情况下忽略更改?
我不太确定这里发生了什么,但有时我的存储库中的特定文件会更改其名称的大小写。e、 g.,: 之前:Windows 如何让git在这种情况下忽略更改?,windows,git,Windows,Git,我不太确定这里发生了什么,但有时我的存储库中的特定文件会更改其名称的大小写。e、 g.,: 之前:File.h 之后:file.h 我真的不在乎为什么会发生这种情况,但这会导致git认为这是一个新文件,然后我必须回去更改文件名。你能让git忽略大小写更改吗 [编辑] 我怀疑是VisualStudio对那个特定的文件做了一些奇怪的事情,因为在我打开并保存更改后的文件时,这种情况似乎最常见。但是,我没有任何方法来修复VS中的bug,但我希望git的功能会更强。由于版本1.5.6,在.git/conf
File.h
之后:file.h
我真的不在乎为什么会发生这种情况,但这会导致git认为这是一个新文件,然后我必须回去更改文件名。你能让git忽略大小写更改吗
[编辑]
我怀疑是VisualStudio对那个特定的文件做了一些奇怪的事情,因为在我打开并保存更改后的文件时,这种情况似乎最常见。但是,我没有任何方法来修复VS中的bug,但我希望git的功能会更强。由于版本1.5.6,在
.git/config
的[core]
部分有一个ignorecase
选项可用
e、 g.添加ignorecase=true
要仅更改一次回购,请从该文件夹运行:
git config core.ignorecase true
要在全球范围内改变它:
git config --global core.ignorecase true
在适用于windows的git版本1.6.1.9中,我发现配置中的“ignorecase=true”已默认设置。问题中描述的情况现在在Mac OS X中再次出现,git版本>=1.7.4(我认为)。解决方法是将ignorecase=false设置为false并重命名小写文件(git以这种方式更改,而不是Visual Studio)手动返回他们的惯用案例(即“mv myname myname”)
更多信息。您可以使用以下命令强制git以仅限大小写的方式重命名文件:
git mv --cached name.txt NAME.TXT
请注意,这不会更改Windows分区上签出副本中文件的大小写,但git会记录大小写更改,您可以提交该更改。以后的签出将使用新大小写。要强制git识别文件大小写的更改,您可以运行此命令
git mv-f mynewapp.sln mynewapp.sln
步骤4修复了签出具有不同大写字母的分支时出现的问题。Re:Visual Studio以所有小写字母保存文件您使用的是哪个版本的Visual Studio?上次我检查时,2008版本的情况似乎更好。2005年,当通过调试器而不是解决方案资源管理器打开文件时,错误似乎会发生。实际上y是的,这是2005年。虽然.git config core.ignorecase true或git config--global core.ignorecase true全局应用,但暂时不可能升级。@graywh:它记录在git config的core.ignorecase()下谢谢,我终于找到了git不考虑我的案例更改的原因。
ignorecase=false
成功了,它被默认为true
-\ux-谢谢!说:core.ignorecase
内部变量,它支持各种变通方法,使git能够在不区分大小写的文件系统上更好地工作,比如e APFS、HFS+、FAT、NTFS等。例如,如果一个目录列表在Git需要“makefile”时找到了“makefile”,Git将假定它实际上是同一个文件,并继续将其记为“makefile”“。默认值为false,除非创建repo时,git clone
或git init
将探测并设置core.ignoreCase
true(如果适用)。是的,并且在处理Java文件时,您希望将此设置设置为false,否则在执行此类重构时可能会遇到麻烦。”(类HTMLParser变为HTMLParser或相反)。git版本2.10.1.windows.1也一样。我知道这很旧,但在windows上将ignorecase设置为false是毫无意义的,因为windows是一个不区分大小写的操作系统。这适用于您使用Java或(gasp!)C#或其他任何东西。“错误:未知选项‘缓存’。”文档中也没有列出: