gitignore
規則一種被
Git
忽略跟蹤文件(或目錄)的規則,這種規則對於已被跟蹤的文件是無效的。
固然它也提供配置自動加入跟蹤的文件(或目錄)的規則,但這種用法比較少。git
#
開頭的行都會被 Git 忽略。通常空行用於可讀性的分隔, #
通常做註釋用/
結尾表示忽略目錄/
開頭表示根目錄下的文件或目錄!
表示不忽略(跟蹤)匹配到的文件或目錄示例以下:github
# 本行爲註釋 .idea/ # 忽略倉庫中全部.idea 目錄 /.idea/ # 忽略倉庫中根目錄下的.idea 目錄 /.settings # 忽略倉庫中根目錄下的 .settings 文件或目錄 ~'$'*.docx # office 打開時生成的臨時文件 !etc/eclipse/.checkstyle # 不忽略 .checkstyle 文件或目錄
指 shell 使用的簡化版正則表達式規則,其以下:正則表達式
*
通配任意個字符(0-n)?
通配單個字符(1)[]
包含單個字符的匹配列表示例以下:shell
debug?.logt # 忽略 debug?.log 文件或目錄,其中 ? 爲任意一個字符 debug[0-9].log # 忽略 debug0.log、debug2.log 等,但不忽略 debuga.log 文件 debug[01].log # 僅忽略 debug0.log、debug1.log debug[!01].log # 不忽略 debug0.log、debug1.log doc/*.txt # 忽略 doc 目錄下一級的全部以 .txt 結尾的文件或目錄 doc/**/*.pdf # 忽略 doc 目錄下全部的 .pdf 文件或目錄
gitignore
支持 glob 模式gitignore
是從上到下一行一行匹配,後面的會覆蓋前面的git 中提供 ignore 支持的方式據我瞭解共有三種,按照效果來分可分爲 全局忽略_、_倉庫忽略(遠程共用) 及 _倉庫忽略(本地使用)_。緩存
本地全部倉庫中共同使用的忽略規則。bash
能夠經過命令行或直接修改文件的方式進行修改:eclipse
core.excludesFile
值便可修改配置文件:修改 ~/.gitconfig
文件,在 [core]
區域添加 excludesfile 屬性,以下:ide
[core] excludesFile = ~/.gitignore
注:idea
core.excludesFile
的默認值爲 ~/.config/git/ignore
。當前倉庫使用,在當前倉庫任意目錄下建立 .gitignore
文件便可,Git 會經過它提供的規則忽略文件。spa
注:
.gitignore
文件加入 Git 的版本管理.gitignore
文件規則存在衝突時,當前目錄中的優先於父級目錄中的當前倉庫使用。
修改 $GIT_DIR/info/exclude
文件,該文件規則和 .gitignore
文件一致。
注:
$GIT_DIR
爲當前倉庫中的 .git/
目錄經過命令行提供忽略規則,根據參數不一樣,可達到 遠程/本地 的效果。
各位若是觀察過 $GIT_DIR/info/exclude
文件,能夠發現該文件第一行有這麼一個命令
git ls-files --others --exclude-from=.git/info/exclude
實際上經過此命令也能夠設置忽略規則文件。
如下爲我的對各類忽略規則的通常準則吧,各位能夠參考參看:
.gitignore
: 當前存儲庫中有開發人員都要忽略的跟蹤文件$GIT_DIR/info/exclude
:單個存儲庫我的忽略的配置文件,如我的爲了更好 debug,開啓日誌配置等~/.gitconfig
中 core.excludesFile
指定的文件:任意狀況下用戶但願忽略的文件,如IDE配置文件目錄(固然由於我的多數使用 Intellij IDEA,因此只瞭解 IDEA 下的插件,我的推薦使用 .ignore
。
由於該插件不只支持 gitignore ,還支持其餘類型的 ignore 忽略規則語法高亮,如圖
參考地址: