Git文件名大小写导致的坑
注意
Git 默认文件名不区分大小写,如果修改了文件名不会显示有改变。
执行 git config core.ignorecase false
命令配置以后文件名才会区分大小写。虽然可以识别大小写文件名了,但是如果你之前已经 push 到远程了,这样远程的文件名还是不会改变,有可能就是本地和远程两个文件名不同,一个是大写的一个是小写的。为了完全避免这个问题,推荐使用命令 git mv 去重命名,不要直接去重命名文件名。如果远程跟本地不一样,只能先删除远程的,在推送本地的到远程。(目前没有找到其他好方法,可能还有更好的方法。)
建议不要修改该配置。因为我这里使用 vuepress 来做的博客 ,所以很多路由跟文件名有关系,如果大小写不区分容易出现路由找不到的情况。
其实最主要的原因是因为 windows
和 mac
不区分文件名大小写,linux
区分文件名大小写。所以在 linux 操作时,可以避免此问题。
# 让 git 区分大小写
# flase-区分 true-不分区
git config core.ignorecase false
1
2
2
# 坑介绍
- 通过配置本地虽然可以识别文件名大小写了,但是推送到远程(GitHub)上面文件名还是没有变化,也有可能远程会同时出现两个文件。
- 如果修改了文件内容,使用
git status
会发现有两个文件有改动,一个是大写,一个是小写。 - 如果在其他电脑
clone
代码就会出现同一个项目文件名不一致,可能会导致严重问题。
# 如果避坑
使用 git mv -f old_name new_name
来重命名文件名。
# 如果已经进坑,解决办法
适合文件比较少的时候操作。
# 1.先备份文件然后删除文件,然后在执行
git add .
# 2.把备份的文件拷贝到项目下,并正确命名,然后在执行
git add .
# 3.然后正常提交、推送,最后提交以后 本地和远程 就会保持一致了。
git commit -m '修改文件名'
git push
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 还未发现
1
// Make sure to add code blocks to your code group
上次更新: 2023/08/08, 20:00:46