不要忽視 .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