点击上方蓝色字体,关注我们
在 Jenkins 构建一个之前的前端项目突然就报错了:
由于更改的代码太多具体改的什么我也忘记了,只能看看 Jenkins 构建留下的日志:
意思应该是:没有找到 Ruler 组件。可是我看了一下代码仓库中的文件还在:
之前确实改了 Ruler 组件,但是为什么说找不到呢?
我回忆了一下,除了更改 Ruler 内部的代码,为了与其他组件命名一致,还把它文件名从小写改为了大写,可是代码仓库里还是小写的 ruler.vue,再看一下仓库里对应的时间不是我本次提交的时间,也就是 git 忽略了文件大小写的更改。
git 怎么没有把我改为大写的 Ruler 更新掉呢?
经过一番搜索,了解到 git 项目有相关的配置,我特地初始化了一个空的 git 仓库,进入 .git 目录:
打开 config 文件:
可以看出 git 默认是忽略大小写的,那我把它改为 false 岂不是就行了。改完后把代码推到仓库却看到两个文件:
然后我又看了下文档:
看来官方还是不推荐直接改 ignorecase 的默认值,那我们该如何使文件大小写更改能被 git 识别呢?
答案是通过 git mv 命令:git-mv - Move or rename a file, a directory, or a symlink
代码语言:javascript复制git mv [-v] [-f] [-n] [-k] <source> <destination>
git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>
也就是:
代码语言:javascript复制git mv ruler.vue Ruler.vue
这样之后再通过正常的 git 提交代码就行了。虽然问题解决了,但是我没有找到更好的规避方法,下次可能还会直接修改文件名而不是通过 git 命令,若有什么更好的方法,请留言!