為什麼說.gitignore不能忽視

安全劍客發表於2020-08-24
我注意到很多開發者沒有使用 .gitignore 檔案,儘管使用 .gitignore 檔案來指定你不希望 Git 在版本控制中跟蹤的檔案是最佳實踐之一。.gitignore 可以提高程式碼質量,所以你不應該忽略版本庫中的 .gitignore。

為什麼說.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 檔案。

原文地址:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2714179/,如需轉載,請註明出處,否則將追究法律責任。

相關文章