跳到主要內容

Ignore files in Git without using a .gitignore file

Ignore files in Git without using a .gitignore file


在日常開發中,你可能會遇到某些檔案不希望被 Git 追蹤變更,但又不想修改專案中的 .gitignore 檔案。以下我將介紹四種在 Git 中忽略文件(但不使用 .gitignore)的常見方法,並分享每種方法的適用情境與操作方式。


1. 使用 git update-index --assume-unchanged

當你希望暫時忽略某個已經在版本控制中的檔案變更時,這個命令會非常有用。執行下列指令後,Git 會假設該檔案沒有變更,即使實際上已經做了修改。

git update-index --assume-unchanged <file>

如果未來需要取消這個忽略設定,可以執行:

git update-index --no-assume-unchanged <file>

這個方法適合用於那些偶爾需要修改但又不希望被提交到版本庫的檔案,例如配置檔案或環境變數文件。


2. 使用 git update-index --skip-worktree

另一個類似的命令是 --skip-worktree。這個選項通常用於當你需要保留檔案在版本庫中的狀態,但又不希望本地修改被 Git 追蹤。這對於那些會根據個人環境做出調整的檔案尤其適用。

git update-index --skip-worktree <file>

如果想要回復檔案變更的追蹤,則使用:

git update-index --no-skip-worktree <file>

--assume-unchanged 不同,--skip-worktree 的設計目的是忽略本地修改,特別適用於分支間共享同一份文件而本地配置有所不同的情境


3. 使用 Git Exclude (Per-Repo)

有時候你可能不想讓某些忽略規則進入版本控制,但又希望在本地專案中使用。這時候可以利用 Git 的「排除檔案」功能,把忽略規則放在 .git/info/exclude 裡面。該檔案的語法與 .gitignore 完全相同,但它只會影響當前專案,不會提交給版本庫。

步驟如下:

  1. 打開 .git/info/exclude 檔案。
  2. 添加你想要忽略的檔案或模式。

這個方法適合針對個別專案做局部設定,而不需要影響整個團隊的配置。


4. 使用 Global Git Ignore (Per-User)

如果你有一些常見的忽略規則是所有專案都會用到的(例如編譯生成的臨時檔案、作業系統自動生成的文件),你可以設定一個全域的忽略檔案。這樣,你在任何專案中都能自動忽略這些不需要的檔案。

設定方法如下:

  1. 建立全域忽略檔案(例如 ~/.gitignore_global),並在其中添加你的忽略規則。

  2. 執行以下命令來告訴 Git 使用這個全域忽略檔案:

    git config --global core.excludesfile ~/.gitignore_global
    

這樣一來,你不需要在每個專案中都配置 .gitignore,而是讓 Git 自動根據全域設定來忽略指定的檔案或模式。


小結

不同的方法適用於不同的情境:

  • --assume-unchanged 適用於偶爾忽略特定檔案變更,但又需要保留檔案在版本庫中的情況。
  • --skip-worktree 則適合當本地檔案需要根據環境調整,但又不希望這些變更被提交。
  • Git Exclude 能夠在不影響團隊的前提下,讓你針對單一專案設定忽略規則。
  • Global Git Ignore 提供了一個統一的方式來管理所有專案中共同需要忽略的檔案。

根據你的具體需求,選擇最合適的方法,可以幫助你更靈活地管理版本控制,保持專案的整潔與一致性。希望這篇分享能夠幫助你在日常工作中更加得心應手!

留言