記錄一下 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...

感受這個就是寫文章的好處呢,出來獻醜,好歹也能有我的指正,不是嘛~

以上,就是在業務開發裏遇到的一個小坑,小小的記錄一下。

相關文章
相關標籤/搜索