我們知道,一些快取文件、編輯器產生的文件等其他的文件,我們是不希望納入版本庫的。但如果每次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/
上面所說就是如何去忽略那些不想加入到版本庫的文件,一般建議是開始階段就配置好該文件,防止提交不需要的文件。
以上是版本控制工具Git-忽略文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!