When copying repositories back and forth between Windows and Linux/MacOS, you may end up either with core.ignoreCase=false on Windows or core.ignoreCase=true on Linux. Both configurations will usually cause troubles and are not supported by Git [1].

To avoid this, you may unset the core.ignoreCase configuration in your repository root:

$ git config –unset core.ignoreCase

As Git’s internal default is false, there is nothing more to do on Linux/MacOS. On Windows, you have to add core.ignoreCase=true as global default:

$ git config –global core.ignoreCase true

[1] https://git-scm.com/docs/git-config#Documentation/git-config.txt-coreignoreCase

builtin/init-db.c:

if (!reinit) {
/* Check if symlink is supported in the work tree */
path = git_path_buf(&buf, "tXXXXXX");
if (!close(xmkstemp(path)) &&
!unlink(path) &&
!symlink("testing", path) &&
!lstat(path, &st1) &&
S_ISLNK(st1.st_mode))
unlink(path); /* good */
else
git_config_set("core.symlinks", "false");

/* Check if the filesystem is case-insensitive */
path = git_path_buf(&buf, "CoNfIg"); //如果windows下要不探测, 把这个改成 ConFLG之类的
if (!access(path, F_OK))
git_config_set("core.ignorecase", "true");
probe_utf8_pathname_composition();
}

strbuf_release(&buf);
return reinit;

https://github.com/desktop/desktop/issues/4916

比如APFS,HFS +,FAT,NTFS等。

例如,如果在目录列表里, Git期望找到一个文件叫Makefile,却找到了makefile,这时候,Git就假定它是同一文件,并继续将其记住为Makefile。

这个值默认是false, 除了git-clone或git-init。

用这两个命令创建repository的时候,core.ignoreCase会被设置成true.

这下就明白了。

git config –get core.ignorecase

git config core.ignorecase false

方法一

命令设置Git大小写敏感:
git config core.ignorecase false
方法二

找到项目的 .git 文件夹(window默认是隐藏的,设置显示隐藏的项目即可出现) 下的 config 文件打开,将

ignorecase = true 设置成 ignorecase = false

git文件大小写敏感导致的问题,在有些mac上,文件大小写是不敏感的。
比如两个同学,小a的电脑大小写不敏感,小b的电脑大小写敏感。

1.小a 提交了一个 文件 Out.vue, 路径/admin/out.vue
2.小b拉pull 代码,结果路径找不到文件。
3.小b找小a,让小a把Out.vue 改成 out.vue
4.小b 本地git 大小写不敏感,修改文件,发现git add 发现没有任何修改
5.设置git 大小写敏感,代码问题解决。
6.为了避免类似问题再次发生,小a需要把电脑设置为大小写敏感

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注