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 忽略规则语法高亮,如图
参考地址: