本篇主要詳細(xì)介紹了 .gitignore 文件的內(nèi)容,以及如何合理的進(jìn)行配置;
我們平時在開發(fā)過程中,經(jīng)常會包含一些不希望被別人看到,或者不需要被別人看到的文件,比如IDEA項(xiàng)目的配置目錄.idea、node模塊的包目錄node_modules等;
這時我們就可以通過 .gitignore 文件來將這些路徑排除掉,這樣提交時就不會把這些目錄提交到遠(yuǎn)程倉庫;下面我們就詳細(xì)介紹下 .gitignore 文件。
1. .gitignore規(guī)范
這里我們列舉出比較重要的幾種規(guī)范,如下所示:
-
#:# 開頭的為注釋內(nèi)容
-
正則表達(dá)式:可以使用正則表達(dá)式來進(jìn)行模式匹配,默認(rèn)會遞歸循環(huán)整個目錄
* : 匹配單個或多個字符
** : 匹配多級目錄
? : 匹配單個字符
[abc] : 匹配a、b、c中的任意一個字符
[a-c] : 匹配a~c之間的任意一個字符 -
/開頭:只在當(dāng)前目錄匹配,不進(jìn)行遞歸,比如/src表示只匹配當(dāng)前目錄的src文件或目錄,不去其他目錄匹配
-
/結(jié)尾:只匹配目錄,不匹配文件, 比如 target/表示只匹配target目錄,不匹配target文件
-
!開頭: 取反,不匹配指定的文件或目錄,比如!main.xml表示 不排除所有的main.xml文件
2. .gitignore例子
idea
target/
*.iml
!main.iml
/test
*.class
demo/*.txt
demo/**/*.txt
*.jar
*.war
*.ear
*.zip
*.tar.gz
*.rar
.idea: 排除所有的idea文件或目錄(這里的所有包括當(dāng)前目錄和其他目錄,也就是說會遞歸查找目錄,
下面的所有都是同理)
target/: 排除掉所有的target目錄
*.iml: 排除所有的.iml文件
!main.iml:不要排除main.iml文件,配合上面的*.iml一起使用就是 排除所有.iml文件,但是不排除main.iml文件
/test:只排除當(dāng)前目錄下的test目錄,不排除其他目錄下的test目錄,比如src/test就不會被排除
*.class:排除所有類文件
demo/*.txt:排除所有demo目錄下的txt文件,只在demo目錄下查找,比如demo/update.txt
demo/**/*.txt:排除所有demo目錄下的txt文件,在demo目錄及其子目錄下查找,比如demo/a/update.txt, demo/update.txt
*.jar:排除所有打包文件
3. IDEA中的.ignore插件
一般來說,每一種項(xiàng)目都會有一些特定的ignore模板,比如Java會產(chǎn)生class文件,node會產(chǎn)生node_modules模塊;
如果每種項(xiàng)目都有一個gitignore模板那該多好??;
正好,IDEA就有這樣一個插件:.ignore插件;
不過它不止適用于gitignore,還適用于其他的ignore
不過我們這里只介紹.gitignore;
安裝插件
直接在插件市場搜索 ignore,安裝即可
使用插件
這里假設(shè)我們創(chuàng)建了一個Java項(xiàng)目,那么就可以在項(xiàng)目的路徑下創(chuàng)建一個.gitignore文件;
接著選擇對應(yīng)的Java模板;
這樣一個基于Java的.gitignore模板就算創(chuàng)建成功了,接下來可以自己再看著修改:
4. 為啥有時候gitignore不生效
有時候我們明明添加了匹配模式,但是就是排除不了對應(yīng)的文件或目錄;
那是因?yàn)槟莻€文件或目錄已經(jīng)被添加到了git的記錄中(執(zhí)行過git add),此時再在gitignore中添加匹配模式是無法生效的;
解決辦法就是從git記錄中刪除對應(yīng)的文件或目錄;
git rm -rf --cached .
-rf:表示遞歸+強(qiáng)制
–cached: 表示只刪除git記錄,不刪除本地文件;如果不添加這個選項(xiàng),則本地文件也會被刪除
. : 表示刪除當(dāng)前目錄的所有g(shù)it記錄,如果只是想刪除指定的文件,可以用具體的文件名替代,比如git rm -rf --cached demo.txt
如果誤刪除了所有g(shù)it記錄,可以用git restore --staged .恢復(fù)
總結(jié)
首先我們需要知道,.gitignore的匹配模式就是用了簡化版的正則表達(dá)式;
其次我們?nèi)绻怯肐DE開發(fā),一般都會有ignore插件,幫助我們快速添加一個gitignore模板(不同項(xiàng)目有不同的模板);文章來源:http://www.zghlxwxcb.cn/news/detail-725041.html
最后如果ignore不生效,可以通過刪除對應(yīng)的git記錄來解決,git rm -rf --cached .;文章來源地址http://www.zghlxwxcb.cn/news/detail-725041.html
到了這里,關(guān)于Git學(xué)習(xí)-.gitignore文件介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!