记录一下 Git 对大小写文件名追踪断定的坑

3分钟了解一下 Git 对大小写文件名追踪断定的坑

最近业务上,遇到一个关于 Git 对于大小写文件名变更的追踪断定的坑vue

因此这篇文章,记录一下 Git 如何断定文件大小写变化git

前言

咱们都知道 Linux 是严格区分大小写的,code

因此若是 Mac 开发时不当心用文件名是Order.vue,而后在routes配置时写的路径是 ../../../order.vue路由

在部署到Linux时确定会报错。开发

问题不是很简单吗,修改下文件名就行了,有啥可说的?部署

这里就是文章要说的点了get

直接修改文件名,会怎样?

就是若是你仅仅是把文件名从 Order.vue 修改成 order.vue 而后提交代码。it

你若是执行git status,会发现提示你没有变化。io

git status

nothing to commit, working tree clean

实际上提交到代码仓库后,你会发现文件的大小写也没有变化。git认为你没有什么变化,文件名依旧是Order.vueclass

那如何触发文件名的变化呢?

我尝试了2种方法

  • 1.往 Order.vue 里加一句空行或者注释,触发一下这个文件名的变化
  • 2.修改 Order.vue 为 Order111.vue, 而后再把 Order111.vue 修改回 order.vue ,触发一下这个文件名的变化

结果是都失败了...

总结:若是仅仅是修改文件名的大小写的话,Git 不会断定文件名有变化

那最后怎么作呢?

  • 1.直接修改route.js,就直接用大写Order.vue这个文件名做为路由,不变化文件名了
  • 2.先把文件名随便改成 test.vue 提交上去,再提交第二次把文件名改回来,好比改为order.vue。 这样确定是能断定文件名的修改的

补充: git mv 修改文件名大小写是能够被 git追踪的

哈哈,评论区告诉我一个技巧..

git mv Order.vue order.vue 直接用 mv 命令操做的话,git 是知道文件名变化的

https://stackoverflow.com/que...

感受这个就是写文章的好处呢,出来献丑,好歹也能有我的指正,不是嘛~

以上,就是在业务开发里遇到的一个小坑,小小的记录一下。

相关文章
相关标签/搜索