如何用 git update-index 避免更改檔案

如何用 git update-index 避免更改檔案

更新於 發佈於 閱讀時間約 1 分鐘

問題

最近筆者在進行一個 Electron 專案,由於專案最後是在電腦本機運行,且資料不需要上雲,故後端夥伴選擇將 SQLite 資料庫跟專案檔打包成一個執行檔。在開發過程中,前端的操作經常會更動到 db的資料,此時 Git 就會追蹤到 db 的變化,因此前端在推送檔案到遠端 repo 前,會需要把 db 移出 Git 的追蹤範圍。





.gitignore 不行嗎

筆者最初的想法,是將 SQLite 檔案加入專案的 .gitignore 檔案中,但似乎因為 db 檔的特性,必須把開啟中的 Electron 關閉後才能把 db 從 Git 的追蹤中移除。雖然每次 commit 前只多一個關閉專案的動作,多次進行下來卻還是有點麻煩。


git udpate-index

後來得知 git update-index 可以針對個別檔案的追蹤進行細微調整,而其中 --assume-unchanged 這個參數便可以將某個檔案移出 Git 的追蹤範圍!

Git 官方文件


那要 merge 的時候怎麼辦

此時你可能會想,若後端更新 db 時,我的分支沒辦法同步更新怎麼辦? Git 會在進行分支的 merge 時出現錯誤,此時可以再執行一次 git update-index,帶入--no-assume-unchanged參數,便可以在 merge 其他分支時拿到最新檔案了!


avatar-img
廖偉帆的沙龍
3會員
5內容數
我是Sail,這裡主要分享一些自己覺得有趣的前端議題。
留言
avatar-img
留言分享你的想法!
廖偉帆的沙龍 的其他內容
在串接第三方 API時,需要定期刷新 token,那有沒有辦法針對 request 和 response 做配置,在 token 過期時先做刷新、再做請求呢?本文要介紹利用 axios 套件提供的攔截器刷新 token 的作法。
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?
在串接第三方 API時,需要定期刷新 token,那有沒有辦法針對 request 和 response 做配置,在 token 過期時先做刷新、再做請求呢?本文要介紹利用 axios 套件提供的攔截器刷新 token 的作法。
在 Vue 專案中使用 Apollo Graphql Client 從 API 獲取資料,由於資料結構較為複雜,筆者便跟著網路教學使用 codegen 工具自動化產生 TypeScript 型別定義。在某個元件中,需要使用 defineProps 來撰寫型別定義,結果⋯⋯
為什麼要登出使用者? 安全性:防止未經授權的人,在使用者暫離時使用系統,這在公用或共享電腦的環境中尤其重要。 資料保護:只要使用者處於登入狀態,就會暴露在個人資料被他人操縱或利用的風險中,因此登出閒置使用者對資安也很重要。 如何在 Vue 3 專案中實作此功能?