gitignore說明
在使用git
的過程中,一般我們總會有些文件無需納入git
的管理房资,也不希望它們總出現(xiàn)在未跟蹤文件列表蜕劝,這些文件通常是日志文件、臨時文件、編譯產(chǎn)生的中間文件岖沛、工具自動生成的文件等等暑始。
此時我們可以創(chuàng)建一個名為 .gitignore
的文件,列出要忽略的文件模式婴削,Git會根據(jù)這些模式規(guī)則來判斷是否將文件添加到版本控制中廊镜。
注意:在windows下可以創(chuàng)建文件名為.gitignore.
,保存之后系統(tǒng)會自動重命名為 .gitignore
格式規(guī)范
- 所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略
- 可以使用標準的 glob 模式匹配
- 匹配模式最后跟斜杠(/)說明要忽略的是目錄
- 要忽略指定模式以外的文件或目錄唉俗,可以在模式前加上感嘆號(!)進行取反
glob模式
所謂的 glob 模式是指 shell 所使用的簡化了的正則表達式嗤朴,匹配規(guī)則如下:
"*"
:星號匹配零個或多個任意字符
[]
:匹配任何一個列在方括號中的字符,如[ab]匹配a或者匹配b
"?"
:問號匹配一個任意字符
[n-m]
:匹配所有在這兩個字符范圍內(nèi)的字符虫溜,如[0-9]表示匹配所有0到9的數(shù)字
匹配示例
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等
定義全局的.gitignore文件
除了可以在項目中定義.gitignore
文件外,還可以設置全局的.gitignore
文件來管理所有Git項目的行為衡楞。
這種方式在不同的項目開發(fā)者之間是不共享的吱雏,是屬于項目之上Git應用級別的行為。
可以在任意目錄下創(chuàng)建相應的.gitignore
文件寺酪,然后再使用以下命令配置Git
git config --global core.excludesfile ~/.gitignore
.gitignore規(guī)則不生效
.gitignore
只能忽略那些原來沒有被track的文件坎背,如果某些文件已經(jīng)被納入了版本管理中,則修改.gitignore
是無效的寄雀。所以一定要養(yǎng)成在項目開始就創(chuàng)建.gitignore
文件的習慣得滤。
解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:
git rm -r --cached .
git add .
git commit -m "msg"
java開發(fā)通用模版
#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