Git忽略文件

来自姬鸿昌的知识库
跳到导航 跳到搜索

在项目根目录下创建 .gitignore 文件,在其中列出待匹配文件的模式。


示例1

*.[oa]

就是告诉 git 忽略所有以 .o 或 .a 结尾的文件



示例2

*~

是告诉 git 忽略所有以波浪号(~)结尾的文件,Emacs 等许多文本编辑器都会以这种文件作为临时文件。



可以写入 .gitignore 文件中的匹配模式规则如下:

  • 空行或者以#开始的行会被忽略
  • 支持标准的glob模式
  • 以斜杠(/)开头的模式可用于禁止递归匹配
  • 以斜杠(/)结尾的模式表示目录
  • 以感叹号(!)开始的模式表示取反

glob模式类似于 shell 所使用的简化版正则表达式。具体来讲:

  • 星号(*)匹配零个或更多字符
  • [abc]匹配方括号内的任意单个字符(在这个例子里是a、b、c)
  • 而问号(?)则匹配任意单个字符
  • 在方括号中使用短横线分隔两个字符(例如[0-9])的模式能够匹配在这两个字符范围内的任何单个字符(在这个例子里是0到9之间的任何数字)
  • 还可以用两个星号匹配嵌套目录,比如 /a**/z 能够匹配 a/z、a/b/z 和 a/b/c/z 等




更多例子

*.a           #忽略 .a 类型的文件

!lib.a        #仍然跟踪 lib.a,即使上一行指令要忽略 .a 类型的文件

/TODO         #只忽略当前目录的 TODO 文件,而不忽略子目录下的 TODO

build/        #忽略 build/ 目录下的所有文件

doc/*.txt     #忽略 doc/notes.txt,而不忽略 doc/server/arch.txt

doc/**/*.pdf  #忽略 doc/目录下的所有 .pdf 文件