在我的部分的第一个承诺中被称为_Electronics
它是以大写字母开头,然后我将其更改为_electronics
。git是否不区分大小写?
cygwin下的Git在提交新名称后忽略了这个案例,所以我在目标回购库中手动更改了名称。
现在它有时会将承诺的_electronics
部分更改为_Electronics
。
我做错了什么?
在我的部分的第一个承诺中被称为_Electronics
它是以大写字母开头,然后我将其更改为_electronics
。git是否不区分大小写?
cygwin下的Git在提交新名称后忽略了这个案例,所以我在目标回购库中手动更改了名称。
现在它有时会将承诺的_electronics
部分更改为_Electronics
。
我做错了什么?
它将被视为2种不同的东西,但会导致您在非区分大小写的系统上遇到问题。如果是这种情况,请确保您制表符完成任何路径或文件名。此外,为了改变在短短的情况下事物的名称,这样做:
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"
这涉及到调整目录名称,以及:git mv and only change case of directory
这是要依赖于core.ignorecase
配置值,在大小写敏感的文件系统中设置为false,在Windows上的msysgit中设置为true。
core.ignorecase
如果为true,此选项允许在不同的解决方法,使GIT中上不区分大小写,如FAT文件系统更好地工作。例如,如果一个目录列表在git需要 “Makefile”时发现“makefile”,git会认为它确实是同一个文件,并且继续 将它记为“Makefile”。
缺省值为false,除非git-clone(1)或git-init(1)将在创建存储库 时探测并设置core.ignorecase为true(如果适用)。
这是正确的答案。对于将来我来说,使用'git config --unset-all core.ignorecase && git config --system core。用sudo忽略错误。 – Znarkus
@Znarkus在OS X上,你的代码完全是我需要的。谢谢! –
同上James,@Znarkus已经在OS X上发现了这个问题的解决方法,谢谢! –
这是容易得多:
git mv Electronics electronics -f
git commit -m "That was easy!"
您是否在不区分大小写的文件系统上尝试这种方法? –
@爱德华是的,OS X – Arnoud
我最初读这篇文章为原始海报,试图对一个文件夹进行改变格式的重命名,而不是文件。现在我重新阅读这个,目前还不清楚。事实上,'mv -f'可以用于文件。 –
git config --system core.ignorecase false
什么OS是你吗? –
你使用的是什么文件系统? –
Windows与cygwin。我的服务器运行Ubuntu Linux。不知道文件系统,我猜ext3或ext2 - 我的提供者配置了最小安装。 – JAkk