.gitignore

在使用 Git 进行版本控制的时候,有些文件是无需纳入 Git 管理的,通常都是些自动 生成的文件,像日志或者编译过程中创建的文件。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件来解决这个问题。

gitignore文件内容生成:https://www.toptal.com/developers/gitignore

格式规范

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略
  • 可以使用标准的 glob 模式匹配
  • 匹配模式最后跟斜杠(/)说明要忽略的是目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反

glob模式

所谓的 glob 模式是指 shell 所使用的简化了的正则表达式,匹配规则如下:

  • "*":星号匹配零个或多个任意字符
  • []:匹配任何一个列在方括号中的字符,如[ab]匹配a或者匹配b
  • "?":问号匹配一个任意字符
  • [n-m]:匹配所有在这两个字符范围内的字符,如[0-9]表示匹配所有0到9的数字

举例

  • #              表示此为注释,将被Git忽略
  • *.a            表示忽略所有 .a 结尾的文件
  • !lib.a         表示lib.a除外
  • /TODO     表示仅仅忽略项目根目录下的 TODO 文件,但不包括 subdir/TODO
  • build/        表示忽略 build/目录下的所有文件,过滤整个build文件夹
  • doc/*.txt    表示会忽略 doc/notes.txt,但不包括 doc/server/arch.txt
  • bin/:          表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,但不忽略 bin 文件
  • /bin:          表示忽略根目录下的bin文件
  • /*.c:           表示忽略cat.c,但不忽略 build/cat.c
  • debug/*.obj:    表示忽略debug/io.obj,但不忽略 debug/common/io.obj 和 tools/debug/io.obj
  • **/foo:        表示忽略/foo,a/foo,a/b/foo等
  • a/**/b:        表示忽略a/b,a/x/b,a/x/y/b等
  • !/bin/run.sh    表示不忽略bin目录下的run.sh文件
  • *.log:          表示忽略所有 .log 文件
  • config.php:     表示忽略当前路径的 config.php 文件
  • /mtk/           表示过滤整个文件夹
  • *.zip           表示过滤所有.zip文件
  • /mtk/do.c       表示过滤某个具体文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值