在使用git作版本控制時,git會默認把git控制的文件夾里面的所有文件都加入到版本控制。但是在實踐中,我們經常會遇到不想某些文件或文件夾被git追蹤的情況.比如logs文件攘滩、代碼構建過程中產生的一些列文件庭猩,要解決這種問題,通常情況下我們需要創(chuàng)建一個文件格式后綴名為.gitignore的文件,來控制哪些文件不被git追蹤.
下面是一個簡單的.gitignore文件:
此為注釋 ,將被 Git 忽略
# 忽略所有 .a 結尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略項目根目錄下的 TODO 文件窟她,不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有文件
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 會忽略掉 doc/ 里面所有的txt文件,包括子目錄下的(**/ 從 Git 1.8.2 之后開始支持 **/ 匹配模式蔼水,表示遞歸匹配子目錄下的文件)
doc/**/*.txt
local.properties #過濾具體文件
震糖!local.properties#添加具體文件
*.[oa]#忽略所有以 .o 或 .a 結尾的文件
被過濾掉的文件就不會出現(xiàn)在你的GitHub庫中了,當然本地庫中還有趴腋,只是push的時候不會上傳
注意:如果你不慎在創(chuàng)建.gitignore文件之前就push了項目吊说,那么即使你在.gitignore文件中寫入新的過濾規(guī)則论咏,這些規(guī)則也不會起作用,Git仍然會對所有文件進行版本管理颁井。
下面是gitignore文件的書寫規(guī)則:
空白或者以#開始的文字將被忽略, 注釋一行可以用 #.
可以使用通配符,例如*.
使用 / 結束可以匹配文件夾,比如 doc/ 將匹配doc文件夾.
使用’!'來聲明一個非語句. 比如!lib.txt 將不會忽略lib.txt
其實很簡單,了解了基本規(guī)則之后就可以書寫自己的gitignore文件了,下面這個是github提供的一些常用的gitignore規(guī)則,可以試著去理解下.
當然大招在這,github上一個開源的All in One .gitignore,總有一款適合你.
Compiled source
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
Packages
############
it's better to unpack these files and commit the raw source
git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
Logs and databases
######################
*.log
*.sql
*.sqlite
OS generated files
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db