僅忽略檔案存根的一部分
有時你可能希望在不想提交或釋出的檔案中進行本地更改。理想情況下,本地設定應該集中在可以放入 .gitignore
的單獨檔案中,但有時作為短期解決方案,在簽入檔案中包含本地內容會很有幫助。
你可以使用乾淨的過濾器讓 Git看不見這些行。他們甚至不會出現差異。
假設這裡是檔案 file1.c
的片段:
struct settings s;
s.host = "localhost";
s.port = 5653;
s.auth = 1;
s.port = 15653; // NOCOMMIT
s.debug = 1; // NOCOMMIT
s.auth = 0; // NOCOMMIT
你不希望在任何地方釋出 NOCOMMIT
行。
通過將此新增到像 .git/config
這樣的 Git 配置檔案來建立 nocommit
過濾器:
[filter "nocommit"]
clean=grep -v NOCOMMIT
將此新增(或建立)到 .git/info/attributes
或 .gitmodules
:
file1.c filter=nocommit
你的 NOCOMMIT 行是從 Git 中隱藏的。
注意事項:
- 使用乾淨的過濾器會減慢檔案的處理速度,尤其是在 Windows 上。
- 當 Git 更新它時,被忽略的行可能會從檔案中消失。它可以用塗抹過濾器來抵消,但它更棘手。
- 未在 Windows 上測試過