目录:
一、介绍
二、示例
三、分析
四、解决
五、忽略大小写配置之后问题
一、介绍
在git中,会有这样一种情况,有时候我们会改变某些文件夹的大小写,但是会发现提交之后去git中查看,大小写没有改变,今天来看看这个问题。
二、示例
例如我在这样一个项目中
某一天,不知道啥情况,需要我把文件夹名称改一下。
这个时候,提交列表是没有东西让你提交的,也没有提示报错(当然可能有的伙伴用了某些vscode插件会提示),所以你可能会接着写代码,然后提交代码
这个时候,我们去git上面去看
发现大小写改了没有效果?
三、分析
刚开始时候,本地和远程都是大写的。
后面,你把本地改为小写的。
但是!git它是不知道的,因为git在默认情况下,是忽略掉文件名大小写的,它不会认为有任何更改。
然后接下来你把本地的推送到远程,由于git并不清楚这些文件有任何的更改,所以,远程那边它仍然保持是大写,因为文件都没有动,只是动了我们新建的index.js文件,文件内引用的是小写,远程是大写
这就会造成一个情况,你本地是好好的,到了远程就报错了,别人拉新代码去运行,却发现报错。都是一套代码!你可能烧到cpu了,搞不清楚为什么报错。后面才发现是路径大小写不一样,这就浪费太多时间啦。
四、解决
所以最好的做法是什么?那就是你一开始就告诉git。你不要忽略大小写,而是要保持大小写敏感,那具体怎么做呢,那做法就非常简单了,只需要输入一个命令
git config core.ignorecase false
表示忽略大小写这个配置给它禁用,禁用了过后你再来看看。
禁用过后,它就能跟踪到了,这个时候提交一下。再看看远程。
这个时候发现,小写的文件夹是到远程了,但是之前的那个文件夹保留下来了,那怎么解决呢?
五、忽略大小写配置之后问题
使用下面命令
git rm --cached Components -r
命令用于把暂存区的指定的文件移除
提交之后,我们再到远程看看。
完事!!🍺🍺🎉🎉