gitignore語法

大司馬愛學習發表於2018-04-26

字數:513

閱讀時間:5分鐘

github官方提供了一個全面的gitignore模板,基本上能滿足我們的需求。

地址入口:github.com/github/giti…

不過有許多庫其實也是使用的相同語法來忽略檔案的,例如eslint。所以我們還是有必要詳細瞭解一下。

規則詳情

gitignore其實就是在glob匹配的基礎上新增了路徑匹配和!#語法。

先上程式碼:

#先忽略當前目錄下所有檔案
/*
!*-ui
dist
forms
libs
dll
複製程式碼

如上所示,每一行配置都是一條獨立的匹配語句,遵循如下規則:

1.#開始表註釋。

2.!開始表取消忽略。例,!*-ui就是重新匹配當前目錄下的以‘-ui’結尾的資料夾。這裡需要注意,如果父級目錄被忽略了,子集目錄是無法取消忽略的。例:

*-ui
!jquery-ui/jquery.js
複製程式碼

是無法重新匹配jquery.js檔案的。正確寫法:

*-ui
!jquery-ui
jquery-ui/*
!!jquery-ui/jquery.js
複製程式碼

3.空行不做任何匹配

4.如果匹配語句中沒有’\‘符號,則視為一個glob匹配。

glob匹配是shell使用的簡化版正規表示式,只使用了正則裡面的*?[]語法。例:foo可以匹配到 ’foo‘、’app/foo‘、’app/food.js‘等。

5.如果表示式中存在''符號,就是路徑匹配語法。例:foo/只會匹配’foo‘、’app/foo‘,不會匹配’app/food.js‘。而foo/*.js只會匹配foo資料夾中所有的js檔案

6.以\開始,表匹配當前目錄。例:/*.js可以匹配'app.js',但無法匹配'js/app.js'。

7.**表示匹配零到多級目錄。

例:

**/foofoo

abc/**匹配abc本身以及其所有子資料夾、子資料夾的子資料夾(無限深度)和其中檔案。

abc/**/d匹配’abc/d‘、’abc/e/d‘、’abc/e/f/d‘、’e/abc/f/d‘等。

參考資料:git-scm.com/docs/gitign…

歡迎關注我的微信公眾號:

gitignore語法