【问题标题】:case-sensitive filename created new issue in git repository区分大小写的文件名在 git 存储库中创建了新问题
【发布时间】:2021-07-09 06:27:15
【问题描述】:

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

然后经过一番搜索,我使用git config core.ignorecase false 然后提交更改并推送到我的存储库。

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

我该如何解决这个问题?

css files in my repo

css files in my pc

【问题讨论】:

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

标签: git gitlab commit git-clone


【解决方案1】:

如果您想从 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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 2020-03-09
      • 2019-10-22
      • 2016-11-24
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多