在每個 GitHub 的 repository 首頁都有一個顯示程式語言組成比例的狀態列:
GitHub 是透過 Linguist 這個 Ruby gems 來判斷和計算各個檔案的程式語言。
雖然 GitHub 會自動幫我們搞定,但是有時候難免會想要排除一些特殊檔案,例如:
- 把相依的(第三方)套件直接放在 repo 裡面的時候。
- 把文件說明也放在同一個 repo 裡面的時候。
這時候可以透過在根目錄新增一個 .gitattributes
檔案來覆寫 Linguist 的判斷。
指定檔案的程式語言
使用 linguist-language=*
指定程式語言。
*.rb linguist-language=Java
這會影響狀態列比例的計算,以及 GitHub 網頁上觀看程式碼時的 syntax highlighting。
排除第三方程式碼
使用 linguist-vendored
排除第三方的程式碼(例如網頁用到的 jQuery)。
assets/vendor/* linguist-vendored
assets/images/* linguist-vendored=false
排除專案的文件說明
使用 linguist-documentation
排除專案文件檔案。
docs/* linguist-documentation
docs/formatter.rb linguist-documentation=false
排除自動產生的程式碼
使用 linguist-generated
排除程式自動產生的檔案(例如最小化過的 JavaScript、編譯過的 CoffeeScript 檔案等等)。
js/main.min.js linguist-generated=true