Git
在提交到版本控制庫的時候,應(yīng)該對這些項目文件,進(jìn)行過濾(使用 GIT 做 SCM 時,過濾文件位于項目根目錄,名稱為 .gitignore)。
.gitignore
# filter eclipse file
*.classpath
*.project
# filter eclipse dir
/.settings/
# filter idea file
*.iml
#filter idea dir
/.idea/
IDE 方言的項目文件
Eclipse : dir - .settings, files - .classpath .project
IntelliJ : dir - .idea, file 項目同名的 .iml
-
git 創(chuàng)建 .gitignore 文件 建立項目過濾規(guī)則
創(chuàng)建 .gitignore 設(shè)置跟蹤和不跟蹤那些文件
- 在項目根目錄下建立 .gitignore 文件
- .gitignore文件過濾有兩種模式,
開放模式和保守模式-
格式規(guī)范
所有空行或者以注釋符號 # 開頭的行都會被 Git 忽略。 可以使用標(biāo)準(zhǔn)的 glob 模式匹配。 匹配模式最后跟反斜杠(/)說明要忽略的是目錄。 要忽略指定模式以外的文件或目錄,可以在模式前加上驚嘆號(!)取反。 先編寫開放模式,在編寫保守模式,要不然,開放模式的規(guī)則會把保守模式的規(guī)則給覆蓋了。 # 配置語法 以斜杠“/”開頭表示目錄; 以星號“*”通配多個字符; 以問號“?”通配單個字符 以方括號“[]”包含單個字符的匹配列表; 以嘆號“!”表示不忽略(跟蹤)匹配到的文件或目錄; -
開發(fā)模式負(fù)責(zé)設(shè)置過濾那些文件和文件夾
eg: # filter dir setting, 表示過濾這個文件夾 /mtk/ /target/ # filter file setting, 指定過濾某種類型的文件 *.zip *.rar *.via *.tmp *.err # 指定過濾某個文件 /mtk/do.c /mtk/if.h -
保守模式負(fù)責(zé)設(shè)置那些文件[要被跟蹤]不被過濾
eg: # not filter dir setting, 跟蹤某個文件夾 !/pluto/mmi # not filter file setting, 跟蹤某類文件 !*.c !*.h # 跟蹤某個指定文件 !/pluto/mmi/features.h -
config .gitignore simple rule
[開放模式與保守模式結(jié)合配置] eg: # 一個文件夾下有很多文件夾和文件,而只想跟蹤其中的一個文件 /pluto/mmi/ !/pluto/mmi/features.h
-
-
強(qiáng)調(diào)最后需要強(qiáng)調(diào)的一點是,如果你不慎在創(chuàng)建.gitignore文件之前就push了項目,那么即使你在.gitignore文件中寫入新的過濾規(guī)則,這些規(guī)則也不會起作用,Git仍然會對所有文件進(jìn)行版本管理。
簡單來說,出現(xiàn)這種問題的原因就是Git已經(jīng)開始管理這些文件了,所以你無法再通過過濾規(guī)則過濾它們。
所以大家一定要養(yǎng)成在項目開始就創(chuàng)建.gitignore文件的習(xí)慣,否則一旦push,處理起來會非常麻煩。