這篇文章介紹使用 Git 時,可以幫助開發的兩個機制: .gitignore
、gitattributes
,文末包含延伸閱讀:一個人該發 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 裡面目錄和檔案的屬性、設定。
主要有幾個用途:
- 告知此檔案為 Binary File,Git 不會再用文字檔的方式進行比對 (Diff)。
- 告知使用特定工具進行 Diff,如使用 docx2txt 來比對 Word 檔案。
- 告知使用的換行方式 (CRLF 或 LF)。
延伸閱讀
- github - Is there a purpose for using pull requests on my own repo if I am the only developer? - Software Engineering Stack Exchange: 只有自己參與的 Git,要發 Pull Request (PR) 嗎 ? 最佳回答的說法包含「更容易用來追蹤 PR 相關的 commit」。
- 架構師觀點: 你需要什麼樣的 CI / CD ? — 安德魯的部落格
- TFS Git 筆記 - 分支管理策略-黑暗執行緒