Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何让git在这种情况下忽略更改?_Windows_Git - Fatal编程技术网

Windows 如何让git在这种情况下忽略更改?

Windows 如何让git在这种情况下忽略更改?,windows,git,Windows,Git,我不太确定这里发生了什么,但有时我的存储库中的特定文件会更改其名称的大小写。e、 g.,: 之前:File.h 之后:file.h 我真的不在乎为什么会发生这种情况,但这会导致git认为这是一个新文件,然后我必须回去更改文件名。你能让git忽略大小写更改吗 [编辑] 我怀疑是VisualStudio对那个特定的文件做了一些奇怪的事情,因为在我打开并保存更改后的文件时,这种情况似乎最常见。但是,我没有任何方法来修复VS中的bug,但我希望git的功能会更强。由于版本1.5.6,在.git/conf

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

之前:
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
  • 以前的命令现在似乎已被弃用


  • 从控制台:git config core.ignorecase true
  • 更改文件名大写
  • 承诺
  • 从控制台:git config core.ignorecase false

  • 步骤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#或其他任何东西。“错误:未知选项‘缓存’。”文档中也没有列出: