1. 程式人生 > 實用技巧 >.gitignore檔案編寫規則

.gitignore檔案編寫規則

1、gitignore說明

在使用git的過程中,一般我們總會有些檔案無需納入git的管理,也不希望它們總出現在未跟蹤檔案列表,這些檔案通常是日誌檔案、臨時檔案、編譯產生的中間檔案、工具自動生成的檔案等等。
此時我們可以建立一個名為 .gitignore 的檔案,列出要忽略的檔案模式,Git會根據這些模式規則來判斷是否將檔案新增到版本控制中。
注意:在windows下可以建立檔名為.gitignore.,儲存之後系統會自動重新命名為 .gitignore

格式規範
  • 所有空行或者以註釋符號 # 開頭的行都會被 Git 忽略
  • 可以使用標準的 glob 模式匹配
  • 匹配模式最後跟斜槓(/)說明要忽略的是目錄
  • 要忽略指定模式以外的檔案或目錄,可以在模式前加上感嘆號(!)進行取反

2、glob模式

所謂的 glob 模式是指 shell 所使用的簡化了的正則表示式,匹配規則如下:
"*":星號匹配零個或多個任意字元
[]:匹配任何一個列在方括號中的字元,如[ab]匹配a或者匹配b
"?":問號匹配一個任意字元
[n-m]:匹配所有在這兩個字元範圍內的字元,如[0-9]表示匹配所有0到9的數字

3、匹配示例

logs/:忽略當前路徑下的logs目錄,包含logs下的所有子目錄和檔案
/logs.txt:忽略根目錄下的logs.txt檔案
*.class:忽略所有後綴為.class的檔案
!/classes/a.class

:不忽略classes目錄下的a.class檔案
tmp/*.txt:只忽略tmp目錄下的.txt檔案
**/foo:可以忽略/foo, a/foo, a/b/foo等

4、定義全域性的.gitignore檔案

除了可以在專案中定義.gitignore檔案外,還可以設定全域性的.gitignore檔案來管理所有Git專案的行為。
這種方式在不同的專案開發者之間是不共享的,是屬於專案之上Git應用級別的行為。
可以在任意目錄下建立相應的.gitignore檔案,然後再使用以下命令配置Git
git config --global core.excludesfile ~/.gitignore

5、.gitignore規則不生效

.gitignore只能忽略那些原來沒有被track的檔案,如果某些檔案已經被納入了版本管理中,則修改.gitignore是無效的。所以一定要養成在專案開始就建立.gitignore檔案的習慣。
解決方法就是先把本地快取刪除(改變成未track狀態),然後再提交:

git rm -r --cached .
git add .
git commit -m "msg"
#java
*.class

#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/

#eclipse ignore
.settings/
.project
.classpatch

#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws

# temp file
*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db
View Code