git設定忽略開發環境設定檔 - daniel-qa/Vue GitHub Wiki

git設定忽略開發環境設定檔

儘量使用小範圍的 pull 和 push (指定檔案或資料夾) , (pull 沒辦法小範圍,都是全部pull)

pull 會覆蓋開發設定檔,所以要保留一分,在 pull 完後,再覆蓋回來

push 前,要先確定本機的設定檔回復至與 Rep 相同,才不會影響到 Rep, (也就是,仍要先 pull 最新版本)

方法二,只能讓你的 push 不影響 Rep,但 Pull 時,會在某些條件下,仍被履蓋,也不太推薦

p.s ignore 只對未 track 的檔案有效,已經 commit 過(Track)的檔案,ignor 設定無作用

方法一,在切換 Rep時,會失效,也不是很推薦


解法 1:assume-unchanged(本機忽略變動)

git update-index --assume-unchanged appsettings.Development.json

這樣做之後:

Git 會「假裝」這個檔案沒有改動。

你本機怎麼改,都不會出現在 git status。

push/pull 完全不會影響 repo 上的 appsettings.Development.json。

⚠️ 缺點:

如果團隊真的更新了 repo 裡的 appsettings.Development.json,你 pull 下來也不會更新到(因為你本機已經被標記忽略)。

解法 2:skip-worktree(進階忽略)

git update-index --skip-worktree appsettings.Development.json
  • 差異:

assume-unchanged 是「效能優化」用的,有時候 Git 還是會檢查。

skip-worktree 更適合用在「配置檔案」,意思是「這個檔案我本機有客製化,不要管它」。

👉 推薦你用這個。

要恢復追蹤只要:

git update-index --no-skip-worktree appsettings.Development.json

一前會設定前端和後端的設定檔

appsettings.Development.json            //後端  
ClientApp\src\store\module\config.js    //前端
  • 指令
git update-index --skip-worktree appsettings.Development.json
git update-index --skip-worktree ClientApp/src/store/module/config.js

🔍 (方法二)的檢查狀態

用 findstr(CMD 原生可用)

git ls-files -v | findstr "appsettings.Development.json"
git ls-files -v | findstr "ClientApp/src/store/module/config.js"

結果會看到開頭的字母:

S → skip-worktree

H → normal tracked file

要確認是否已經成功設為 skip-worktree:

git ls-files -v | grep "appsettings.Development.json"
git ls-files -v | grep "ClientApp/src/store/module/config.js"

結果會看到檔名前有 S,代表 skip-worktree:

S appsettings.Development.json
S ClientApp/src/store/module/config.js