Git::Windows:从远程仓库拉取大小写敏感的文件

3

在我的远程代码仓库中有一些文件,例如:

-account.php

-Account.php

如果想要查看我的代码仓库的实际情况,请单击此链接:See

我现在使用 Windows Git Bash 从远程代码仓库克隆/拉取文件。

然而,在执行克隆操作时,只有 -account.php 被克隆了,而 -Account.php 却被忽略了!

请问如何将这两个文件

-account.php

-Account.php

都克隆到本地代码仓库中,以便删除它们并只保留一种命名约定的文件,并消除我所犯的错误?


我认为这与git无关。Windows将Account和account视为一个文件。您可能不应该在git的同一目录中拥有Account.php和account.php。尝试说服他们,或者在您的分支中进行更改。或者更好的方法是:不要使用Windows。 - Gavriel
我知道在同一个目录下不应该有两个文件名相同但大小写不同的文件,但我意识到这一点已经很晚了。Windows 认为它们是同一个文件,但 Git 却认为它们是不同的文件。 - Gautam Sawala
我会转换到Linux并纠正错误。感谢您的评论.. :) - Gautam Sawala
你不能只改其中一个吗? - Gavriel
我将文件名从 account.php 改为了 Account_.php。所以当我执行 git status 命令时,它会告诉我文件 account.phpAccount.php 已被删除,而 Account_.php 则是未追踪的文件。因此,我想我可以通过提交这个更改,然后再返回来在另一个提交中重新命名这些文件来解决问题,对吗? - Gautam Sawala
1个回答

4

由于 git 是基于 Unix 的,因此它是区分大小写的软件。

如果您提交了大小写不同的文件,则需要将其重命名。使用 git mv 命令可告诉 Git 重命名文件并保留文件的所有历史记录。

# "move" the file from the old name to the new name
git mv -f File file

# Add the file to the staging area
git add .

# commit your changes
git commit -m "renamed file..."

Git有一个配置设置core.ignorecase
为了让Git区分大小写,只需将此设置设置为false

git config core.ignorecase false

文档

git config文档中:

core.ignorecase

如果设置为true,则此选项将启用各种解决方案,以使git在不区分大小写的文件系统(如FAT)上更好地工作。

例如,如果目录列表发现makefile而git预期为Makefile,git则假定它实际上是相同的文件,并继续将其记为Makefile

默认值为false,默认情况下,除非在创建存储库时,git-clone(1)git-init(1)会探测并在适当时设置core.ignorecase为true。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接