不要忽視 .gitignore
我注意到很多開發者沒有使用 .gitignore
文件,儘管使用 .gitignore
文件來指定你不希望 Git 在版本控制中跟蹤的文件是最佳實踐之一。.gitignore
可以提高代碼質量,所以你不應該忽略版本庫中的 .gitignore。
什麼是 .gitignore?
Git 倉庫中的文件可以是:
- 未跟蹤的:未被暫存或提交的變更。
- 跟蹤的:已暫存或提交的變更。
- 忽略的:你讓 Git 忽略的文件。
有些文件你希望 Git 忽略,不要在你的版本庫中跟蹤它,這些文件包括許多自動生成的或特定於平台的文件,以及其他本地配置文件,如:
- 含有敏感信息的文件
- 編譯出的代碼,如
.dll
或.class
。 - 系統文件,如
.DS_Store
或Thumbs.db
。 - 含有臨時信息的文件,如日誌、緩存等。
- 生成的文件,如
dist
文件夾。
如果你不想讓 Git 跟蹤版本庫中的某些文件,不過這不能通過 Git 命令做到。(雖然你可以用 git rm
命令停止跟蹤一個文件,比如 git rm --cached
。)相反,你需要使用 .gitignore
文件,這是一個告訴 Git 不要跟蹤哪些文件的文本文件。
創建 .gitignore
文件很簡單,只需創建一個文本文件並命名為 .gitignore
。記得在文件名的開頭有一個點(.
)。就這樣就完成了。
編寫 .gitignore 文件的規則
根據文檔,「.gitignore
文件中的每一行都指定了一個模式。」
在此上下文中,「模式」可以指一個特定的文件名,或者指文件名的某些部分結合上通配符。換句話說,example.txt
是匹配名為 example.txt
的文件的有效模式,而 ex*txt
是匹配名為 example.txt
以及 export.txt
的文件的有效模式。
以下是一些幫助你正確設置 .gitignore
文件的基本規則:
- 任何以哈希(
#
)開頭的行都是注釋。 - `` 字元可以轉義特殊字元。
/
字元表示該規則只適用於位於同一文件夾中的文件和文件夾。- 星號(
*
)表示任意數量的字元(零個或更多)。 - 兩個星號(
**
)表示任意數量的子目錄。 - 一個問號(
?
)代替零個或一個字元。 - 一個感嘆號(
!
)會反轉特定的規則(即包括了任何被前一個模式排除的文件)。 - 空行會被忽略,所以你可以用它們來增加空間,使你的文件更容易閱讀。
- 在末尾添加
/
會忽略整個目錄路徑。
本地與全局 .gitignore 文件的比較
有兩種類型的 .gitignore
文件:
- 本地:放在 Git 倉庫的根目錄下,只在該倉庫中工作,並且必須提交到該倉庫中。
- 全局:放在你的主目錄根目錄下,影響你在你的機器上使用的每個倉庫,不需要提交。
很多開發者在項目倉庫中使用本地的 .gitignore
文件,但很少有人使用全局的 .gitignore
文件。使用全局文件最顯著的優勢是,你不需要提交就可以使用它,而且做一個改動會影響你所有的版本庫。
Git 忽略的優勢
除了確保特定的文件不被 Git 追蹤之外,使用 .gitignore
文件還有其他好處。
- 通過忽略不需要的文件,它可以幫助你保持代碼庫的乾淨。
- 它可以控制代碼庫的大小,這在你正在做一個大項目的時候特別有用。
- 你的每一次提交、推送和拉取請求都將是乾淨的。
結束語
Git 很強大,但歸根結底,它只是一個計算機程序而已。使用最佳實踐並保持你的代碼倉庫穩定是一個團隊的努力,其中要做到一件事就是使用 .gitignore
文件。
via: https://opensource.com/article/20/8/dont-ignore-gitignore
作者:Rajeev Bera 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive