Git区分大小写


82

我遇到了git问题。基本上,我将其设置为falsecore.ignorecase是因为我想更改某些文件夹名称的大小写(因为我在OSX下使用不区分大小写的文件系统,因此不会显示其他更改)。当我提取数据时,我注意到现在每个重命名的文件夹在存储库中都会出现两次,包括旧名称和新名称。我不知道该怎么做才能删除旧文件夹,因为它们不会在本地显示(我尝试core.ignorecase再次设置为true,但这无济于事)。


1
也许您可以在映像上创建ext3文件系统,将其挂载,然后拉入这个区分大小写的文件系统。
安德烈·普埃尔

@AndréPuel好吧,实际上我正在寻找“更轻松”的东西。:P但感谢您的建议,如果找不到其他解决方案,我会继续努力。
熵2012年

Answers:


123

可能是与msysgit问题(对于另一个不区分大小写的OS:Windows)中的此注释类似的变通办法,可以解决?

我也遇到过同样的问题。在Eclipse中重构了程序包名称,由于文件夹名称未还原,切换到先前的构建中断了。我正在使用Windows 7,Git 1.7.0.2.msysgit.0

我的文件夹在Windows中重命名为“ folder”,但Folder在Git中显示为“ ”。
我通过Folder在Windows中将其重命名为“ ”然后运行来解决了该问题:

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

请注意,自git 2.0.1(2014年6月)起,它git mv Folder folder应该可以正常工作!

请参阅“ Git:更改文件名的大写字母


1
我注意到,在这种方式重命名时,第二重命名可以采取一长串的时间。答案是要有耐心;该文件夹最终将重命名,然后您可以提交它。
NathanAldenSr 2014年

获得相同结果的另一种方法是将“ Folder”重命名为“ Folder2”并进行提交,然后将“ Folder2”重命名为“ folder”并修改最后的提交。
DaniCE

@DaniCE我刚刚编辑了答案:在git 2.0.1中,这应该简单得多。
VonC

21

您可以使用区分大小写的文件系统创建磁盘映像(最好是稀疏磁盘映像),然后在其中签出git存储库。

下面的Disk Utility屏幕快照显示了如何创建区分大小写的磁盘映像。

磁盘实用程序设置


一个更好,永久的解决方案,可以解决此问题以及区分大小写的其他问题。我制作了磁盘映像;将我的旧Git仓库复制到其中;从我以前将所有git仓库保存到新的稀疏包版本的地方,建立了一个符号链接。回到正常的工作流程,再也不会遇到这种情况。
jwd630

用这种方法创建的磁盘非常慢。
Minqi Pan

1
@MinqiPan,我也有同样的担忧,但是创建APFS卷不应该如此。APFS卷可以存在于同一“容器”分区中,因此不会降低性能。
维克多·谢尔琴科

21

在macOS上使用以下命令。这将更改您的git配置,使其对文件名区分大小写。

git config core.ignorecase false

您可以通过在以下位置进行编辑~/.gitconfig和设置来进行全局设置core

[core]
    ignoreCase = false

为了使git成功进行包括案例重命名的重新设置,我做了完全相反的事情。谢谢!
索林

12

Mac OS X默认情况下是“不区分大小写但保留大小写”。这是一个重要的区别。

我建议您创建另一个磁盘映像,并将其格式化为“ HFS区分大小写”。


谢谢您的提示,但是上面的帖子解决了所有问题!
熵2012年

7
不幸的是,许多不良软件(当然是Adobe)都依赖于默认的损坏的OSX文件系统。警惕。
Jim Stewart


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.