一蟆肆、簡紹
我們做的每個Git項目中都需要一個“.gitignore”文件,這個文件的作用就是告訴Git哪些文件不需要添加到版本管理中掏婶。比如我們項目中的npm包(node_modules),它在我們項目中是很重要的,但是它占的內(nèi)存也是很大的摧莽,所以一般我們用Git管理的時候是不需要添加npm包的。
二顿痪、常用的規(guī)則
/mtk/ 過濾整個文件夾
*.zip 過濾所有.zip文件
/mtk/do.c 過濾某個具體文件
以上規(guī)則意思是:被過濾掉的文件就不會出現(xiàn)在你的GitHub庫中了镊辕,當(dāng)然本地庫中還有,只是push的時候不會上傳蚁袭。
除了以上規(guī)則征懈,它還可以指定要將哪些文件添加到版本管理中。
!src/ 不過濾該文件夾
!*.zip 不過濾所有.zip文件
!/mtk/do.c 不過濾該文件
1揩悄、配置語法:
以斜杠/
開頭表示目錄卖哎;
以星號*
通配多個字符;
以問號?
通配單個字符
以方括號[]
包含單個字符的匹配列表;
以嘆號!
表示不忽略(跟蹤)匹配到的文件或目錄亏娜;
此外焕窝,git 對于 .ignore 配置文件是按行從上到下進行規(guī)則匹配的,意味著如果前面的規(guī)則匹配的范圍更大维贺,則后面的規(guī)則將不會生效它掂;
2、示例說明
a溯泣、規(guī)則:fd1/*
說明:忽略目錄 fd1 下的全部內(nèi)容群发;注意,不管是根目錄下的 /fd1/ 目錄发乔,還是某個子目錄 /child/fd1/ 目錄熟妓,都會被忽略;
b栏尚、規(guī)則:/fd1/*
說明:忽略根目錄下的 /fd1/ 目錄的全部內(nèi)容起愈;
c、規(guī)則:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
說明:忽略全部內(nèi)容译仗,但是不忽略 .gitignore 文件抬虽、根目錄下的 /fw/bin/ 和 /fw/sf/ 目錄;
3纵菌、創(chuàng)建.gitignore文件
1) 常規(guī)的windows操作
- 根目錄下創(chuàng)建gitignore.txt阐污;
- 編輯gitignore.txt,寫下你的規(guī)則咱圆,例如加上node_modules/笛辟;
- 打開命令行窗口,切換到根目錄(可以直接在文件夾上面的地址欄輸入cmd回車)序苏;
- 執(zhí)行命令ren gitignore.txt .gitignore手幢。
2) 用Git Bash
- 根目錄下右鍵選擇“Git Bash Here”進入bash命令窗口;
- 輸入
vim .gitignore
或touch .gitignore
命令忱详,打開文件(沒有文件會自動創(chuàng)建)围来; - 按i鍵切換到編輯狀態(tài),輸入規(guī)則匈睁,例如node_modules/监透,然后按Esc鍵退出編輯,輸入:wq保存退出航唆。
如圖:
# dependencies npm包文件
/node_modules
# production 打包文件
/build
# misc
.DS_Store
npm-debug.log*
.DS_Store:這個文件是Mac OS X用來存儲文件夾的一些諸如自定義圖標(biāo)胀蛮,ICON位置尺寸,窗口位置佛点,顯示列表種類以及一些像窗體自定義背景樣式醇滥,顏色這樣的元信息黎比。默認(rèn)情況下超营,Mac OS X下的每個文件夾下應(yīng)該都會生成一個鸳玩,包括網(wǎng)絡(luò)介質(zhì)存儲盤和U盤這樣的外部設(shè)備。
npm-debug.log:項目主目錄下總是會出現(xiàn)這個文件演闭,而且不止一個不跟,原因是npm i 的時候,如果報錯米碰,就會增加一個此文件來顯示報錯信息窝革,npm install的時候則不會出現(xiàn)。
最后需要強調(diào)的一點是吕座,如果你不慎在創(chuàng)建.gitignore文件之前就push了項目虐译,那么即使你在.gitignore文件中寫入新的過濾規(guī)則,這些規(guī)則也不會起作用吴趴,Git仍然會對所有文件進行版本管理漆诽。
簡單來說,出現(xiàn)這種問題的原因就是Git已經(jīng)開始管理這些文件了锣枝,所以你無法再通過過濾規(guī)則過濾它們厢拭。因此一定要養(yǎng)成在項目開始就創(chuàng)建.gitignore文件的習(xí)慣,否則一旦push撇叁,處理起來會非常麻煩供鸠。