git系列:gitignore

来源:互联网 发布:淘宝头像图片 编辑:程序博客网 时间:2024/06/04 01:00

    • 1什么是 gitignore
    • 2gitignore的语法
    • 3gitignore实例
      • 1 空文件夹
      • 2 全局文件文件夹匹配
      • 3 局部匹配
      • 4 带空格的文件名与路径匹配
      • 5 不匹配规则
    • 4相关资料与链接

1、什么是 gitignore

  git是一个版本控制工具,不过在工作目录中,并不是所有的文件都是需要做版本控制的,比如说编译产生的字节码文件,这种文件是不需要做版本管理,也不需要上传到github中的,但是我们又不想每次上传的时候手动删除这些文件,于是就有了gitignore文件,记录在文件中每一行都是一个规则,git根据这个规则,决定哪些文件做版本控制,这样我们就可以选择性的决定哪些文件做版本控制。

2、gitignore的语法

标识 描述 空白行 不匹配文件 # 表示注释 \ 转义字符,如果在#前面放,则表示一个字符,而非注释 \空格 转义空格 ! 表示不匹配的规则,也就是此规则下的文件将会被追踪 \! 放在开头表示转义!,仅表示!字符 ? 匹配单个字符 * 匹配任意多个字符 ** 匹配任意目录深度 [123] 匹配其中的一个字符 [1-9] 匹配1到9中的一个

3、gitignore实例

​ 当文件或文件夹匹配到gitignore文件中的规则时,git将不会对这些文件/文件夹进行版本管理。

3.1 空文件夹

​ 默认空文件夹不会被匹配

3.2 全局文件/文件夹匹配

abc

​ 会匹配工作空间中所有名为abc的文件和文件夹

abc/

​ 匹配全局所有的名为abc的文件夹,但是名为abc的文件不会被匹配到

*abc

​ 匹配全局所有的末尾字符为abc的文件和文件夹

*abc/

​ 匹配全局所有的末尾字符为abc的文件夹

**/abc

​ 匹配全局所有的名为abc的文件和文件夹

**/abc/

​ 匹配全局所有的名为abc的文件夹

**/a[bc]/

​ 匹配全局所有的名为ab, ac的文件夹

3.3 局部匹配

/abc

​ 匹配项目根目录名为abc文件和文件夹

/abc/

​ 匹配项目根目录名为abc文件夹

/abc/*/abc/**

​ 匹配abc目录下所有文件和文件夹

abc/bcd

​ 匹配根目录中abc目录下名为bcd文件和文件夹

abc/bcd/

​ 匹配根目录中abc目录下名为bcd文件夹

a/**/b

​ 匹配全局所有的形式如上的文件和文件夹,例如a/f/b, a/y/b/

a/**/b/

​ 匹配全局所有的形式如上的文件夹,文件会忽略

/a/**/b

​ 从根目录开始,先匹配根目录下的文件夹a,然后匹配全局所有的形式如上的文件和文件夹,例如a/f/b, /a/y/b/

/a/**/b/

​ 从根目录开始,先匹配根目录下的文件夹a,然后匹配全局所有的形式如上的文件夹,例如a/f/b, /a/y/b/

3.4 带空格的文件名与路径匹配

​ 如果一个文件文件名中带有空格,需要使用\转义

\space+文件名

​ 路径同理

3.5 不匹配规则

​ 上面的规则,如果前面加上!,则表示哪些文件或文件夹需要被git进行版本管理,常见的用法如下:

/abc/**!/abc/name.txt

​ 第一句,我们将/abc下的所有文件匹配到,git将忽略这些文件、文件夹,不过第二句表示git将会对/abc/name.txt文件进行版本管理。

特别注意:git读取规则的时候是从上往下的,所以说,忽略匹配一定要在匹配规则之后才会生效!

4、相关资料与链接

git官方解释文档 : gitignore

pro git 中文版: Pro Git v2

git官方实例文件: github官方实例

原创粉丝点击