Git 機制 - Gitignore 和 GitAttributes

June 5, 2022

這篇文章介紹使用 Git 時,可以幫助開發的兩個機制: .gitignoregitattributes,文末包含延伸閱讀:一個人該發 Pull Request 嗎 ? 需要什麼樣的 CI/CD ?。

Gitignore

每個入門 Git 都應該先知道的機制,避免簽入一堆不需要的檔案,害你的同事和上司吐血。

在 Git 的 Repository 下,可以建立名為 .gitignore 的檔案,在裡面列出不需要 commit 的檔案,這些檔案通常包含:每次編譯後會重新產生的執行檔 (如 Binary File)、暫存檔、個人設定檔 … 等等。

例如這個網誌的 .gitignore 就不會 commit 編譯後產生的網站、執行時的快取 … 等。

_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor

雖然每個軟體專案可能有不同的不需 commit 項目,但大部分的程式語言開發時都有產生一些執行檔、暫存檔等,底下的 github/gitignore 就包含了一系列語言的範本可供下載使用。

GitAttributes

.gitattributes 可以用來控制 Git Repository 裡面目錄和檔案的屬性、設定。

主要有幾個用途:

  1. 告知此檔案為 Binary File,Git 不會再用文字檔的方式進行比對 (Diff)。
  2. 告知使用特定工具進行 Diff,如使用 docx2txt 來比對 Word 檔案。
  3. 告知使用的換行方式 (CRLF 或 LF)。

延伸閱讀