git 默认对文件名的大小写敏感

但是会在仓库克隆或初始化时,根据当前系统来设置是否忽略大小写

比如 Windows 下会设置为 true → 不区分大小写,而 Linux 中为 false;

git config core.ignorecase   // 可使用此命令来查看你的 git 是否对文件名大小写敏感:为 true 则不敏感,为 false 则敏感

解决办法一:

文件重命名命令

git mv test.txt TEST.txt  // 将 test.txt 重命名为 TEST.txt

但是如果重命名   文件夹 ,直接使用上述命令会报错,可以如下这样迂回修改:

git mv test-dir tmp
git mv tmp TEST-DIR

// 使用 tmp 做一下中间转换 (tmp可以随意起哈)

解决办法二:

把待改名的文件先剪切到其他文件夹内 → 提交代码 →  然后再剪切到原本的目录下 → 提交代码。

方法简单没后遗症。

解决办法三:(不建议

可执行以下命令更改 git 设置,使其区分文件名的大小写。【 但是不建议使用,还是默认系统的配置好。这种操作会导致远程仓库有问题。】

git config core.ignorecase false

然后正常提交代码,修改会被识别为 untracked 类型的变更,如果直接推送到远程的话,那么远程仓库同时存在大小写两个版本的文件(本地一切正常)

此时需要手动删除远程仓库名字错误的文件。或者采用迂回战术,先把文件改个其他名,在改成正确的。

这里提供删除文件和文件夹的命令

// 进入到待删除的目录

// 删除文件命令
git rm -r --cached text /a.txt // 删除test文件夹下的a.txt文件,加入到删除缓存中
// 删除文件夹命令
git rm -r --cached text // 删除test文件夹,加入到删除缓存中

git commit -m "注释"  // 把修改提交到本地版本库
git push // 推送操作到远程仓库

 

参考:https://knightyun.github.io/2021/01/18/git-ignorecase

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐