我們知道,一些緩存文件、編輯器產生的文件等其他的文件,我們是不希望納入版本庫的。但如果每次git add 文件名,一個個敲下去,這實在是個非常煩人的操作,容易讓人奔潰。還是使用git add .爽!那我們有沒有辦法忽略一些我們不希望納入版本庫的文件呢?答案是有的,可以使用.gitignore,在該文件里設置想要忽略的那些文件。然后使用git add .這些文件也不會被提交了。
比如,我不想將swp文件納入版本庫,以及不需要runtime這個文件夾,那么就可以這樣設置
$?vim?.gitignore #?忽略swp文件 *.swp #?忽略runtime文件夾 /runtime/
下面來說說.gitignore使用規范
-
git會忽略以#開頭以及空白的行
-
可以使用glob正則,它會遞歸到每個目錄(如果沒有指定防止遞歸的話)
-
可以以/開頭,來防止遞歸
-
可以以/結尾,來指明目錄
-
可以使用!來方向選擇。
!常見的用法是,我們想忽略掉一個文件夾,但文件夾里index.html保留。那么
/data/ !/data/index.html
表示忽略/data文件夾但是跟蹤/data/index.html文件。
下面講講什么是glob正則,其實它是一種簡化版的正則。
它使用*來匹配0個或多個任意字符。比如
*.php?表示匹配以.php結尾的文件 tmp*?表示匹配以tmp開頭的所有文件
使用?來匹配一個任意字符,如
周?倫
使用[]來匹配[]里的任意一個字符,如
[abc]?表示匹配abc其中任意一個
另外,多個字符是連續的話,可以使用-來代替,如
[0-9]?表示匹配任意數字
使用兩個星號(**)表示匹配任意中間目錄
比如?a/**/z?可以匹配?a/z?、?a/b/z?或?a/b/c/z?等。
下面我們以一個例子來講解忽略文件的用法,一般的,我們會忽略/vendor目錄,配置文件,日志文件夾/log,緩存文件等。
#?忽略swp文件 *.swp #?忽略/vendor文件夾 /vendor/ #?忽略配置文件 /app/config/config.php #?忽略/log文件夾 /log/ #?忽略緩存文件夾 /runtime/
上面所說就是如何去忽略那些不想加入到版本庫的文件,一般建議是開始階段就配置好該文件,防止提交不需要的文件。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END