区分大小写的文件名在git存储库中创建了新问题

区分大小写的文件名在git存储库中创建了新问题,git,gitlab,commit,git-clone,Git,Gitlab,Commit,Git Clone,我做了一个react项目,然后我将CSS文件名改为小写,注意到我不能提交区分大小写的文件名更改 然后在一些搜索之后,我使用了git config core.ignorecase false,然后提交更改并推送到我的存储库 现在我有两个独立的文件,之后当我克隆我的存储库时,我只得到一个旧文件 如何解决此问题 当您将git与不区分大小写的分区一起使用时,会发生这种情况。在计算机中创建区分大小写的分区,以解决使用不同大小写创建同名文件的问题。从具有区分大小写文件系统的计算机中删除错误的文件。linu

我做了一个react项目,然后我将CSS文件名改为小写,注意到我不能提交区分大小写的文件名更改

然后在一些搜索之后,我使用了
git config core.ignorecase false
,然后提交更改并推送到我的存储库

现在我有两个独立的文件,之后当我克隆我的存储库时,我只得到一个旧文件

如何解决此问题


当您将git与不区分大小写的分区一起使用时,会发生这种情况。在计算机中创建区分大小写的分区,以解决使用不同大小写创建同名文件的问题。从具有区分大小写文件系统的计算机中删除错误的文件。linux上的文件系统区分大小写。我可以怀疑你们的团队正在使用不同的操作系统吗?希望这个小小的响应能对您有所帮助。

如果您想从git存储中删除“错误”的文件:

git rm --cached -- BaDcAsEd.css
git commit
一旦您从git存储中删除了错误的文件,运行
git checkout
应该会将您期望的内容写入磁盘

但它可能无法修复磁盘上文件名的名称;要修复该部分,一个技巧是分两步进行,使用临时名称:

mv mYfIlE.css tmpfile
mv tmpfile myFile.css

使用
core.ignorecase true
,如果需要更改git文件名中的大小写,您可能需要尝试以下选项之一:

# option 1 : use git mv directly
git mv MyFiLe.css myFile.css

# option 2 : use git mv twice, with a tmp name
git mv MyFiLe.css tmpfile
git mv tmpfile myFile.css

(我手头没有一个不区分大小写的文件系统来测试哪一个有效…

你对Git撒了谎;现在您可以看到结果了。
core.ignorecase
设置无法控制计算机是否可以在同一文件夹中创建
README
文件和
README
文件。相反,它告诉Git您的计算机是否能够做到这一点。更改设置意味着你在对Git撒谎。当你说你的电脑可以做到这一点时,Git相信你。除非更改了计算机的行为方式,否则不要更改设置。