git不区分大小写吗?

git不区分大小写吗?,git,version-control,case-sensitive,Git,Version Control,Case Sensitive,在我写的第一篇题为《电子产品》的文章中,它以大写字母开头,然后我把它改成了《电子产品》 cygwin下的Git在提交新名称后忽略了该案例,因此我在目标回购协议中手动更改了名称 现在,它有时会将提交的\u electronics部分更改为\u electronics 我做错了什么?这将被视为两件不同的事情,但会在不区分大小写的系统上给您带来问题。如果是这种情况,请确保您正在填写任何路径或文件名。此外,要更改某事物的名称,请执行以下操作: mv file.txt temp.txt git add -

在我写的第一篇题为《电子产品》的文章中,它以大写字母开头,然后我把它改成了《电子产品》

cygwin下的Git在提交新名称后忽略了该案例,因此我在目标回购协议中手动更改了名称

现在,它有时会将提交的
\u electronics
部分更改为
\u electronics


我做错了什么?

这将被视为两件不同的事情,但会在不区分大小写的系统上给您带来问题。如果是这种情况,请确保您正在填写任何路径或文件名。此外,要更改某事物的名称,请执行以下操作:

mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
这是一种明确的更改方式,可以提交更改,然后折叠提交。一种较短的方法是一次操作索引和工作文件夹:

git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"

这也与调整目录名有关:

它将取决于
核心.ignorecase
配置值,该值在区分大小写的文件系统中设置为false,在Windows上的msysgit中设置为true

核心信号

如果为true,该选项将启用各种变通方法,使git能够更好地在不区分大小写的文件系统(如FAT)上工作。对于 例如,如果目录列表在git期望的时间内找到“makefile” “Makefile”,git将假定它实际上是同一个文件,然后继续 将其记为“Makefile”

默认值为false,但git clone(1)或git init(1)将在存储库关闭时探测并设置core.ignorecase true(如果适用) 是创建的

更多详细信息请参见本回复。

这要容易得多:

git mv Electronics electronics -f
git commit -m "That was easy!"

在我的场景中,我有两个文件夹
tests
tests
,它们在Github中显示为两个单独的文件夹,但在Windows中显示为一个
tests
文件夹。我的目标是将它们结合到
测试中

我采用了以下方法:

  • 创建一个新文件夹
    temp
  • 将所有内容从
    测试
    复制到
    temp
  • 删除
    测试
  • 执行git rm测试-r
  • temp
    重命名为
    tests

  • 我已尝试解决该问题,并在Windows10上获得成功

    假设bitbucket TEST和TEST上有两个文件夹,但当我在磁盘上克隆repo时,它只创建TEST,我希望将TEST作为包含所有文件的git上的单个文件夹保留

    我需要在命令行上执行以下命令 git mv测试1-f git mv text1测试-f git提交-m“重命名…” git推送


    现在,您将看到bitbucket上的文件夹层次结构已更正。

    您使用的是什么操作系统?您使用的是什么文件系统?Windows和cygwin。我的服务器运行Ubuntu Linux。我不知道文件系统,我猜ext3或ext2-我的提供商配置了最小安装。你不高兴Windows决定不区分大小写吗?Windows不区分大小写,但有时(今天更常见)保留大小写。看起来这是对的(除了我从大写字母改为小写字母)我偷看了一下,只要我习惯了cygwin,使用cygwin就更舒服了-谢谢你的帮助,你可以直接做
    git mv file.txt file.txt
    。不确定这是否是git的新功能。这在我看来是正确的答案。对于未来的我,使用sudo.ditto James,@Znarkus已经确定了OS X上此问题的修复方法,谢谢@Znarkus也在Windows上工作。漂亮。@Znarkus,在OSX上这样做的问题是,当您通过finder重命名一个文件,并且只更改大小写时,git会将重命名的版本视为一个全新的文件,但它不会为该文件的旧版本生成相应的“删除”操作。因此,如果您提交并推送到github,github将同时拥有旧命名文件和新命名文件,但您的本地系统将只拥有新文件,git也不会更聪明。@spiralganglion For web dev on OSX我真的可以推荐它,然后将它作为您的www目录挂载。您是否在不区分大小写的文件系统上尝试过此操作?我最初读到这篇文章的目的是尝试对文件夹而不是文件执行大小写更改重命名。现在我重读这篇文章,不清楚了。实际上,
    mv-f
    将适用于文件。
    git config --system core.ignorecase false