“Git忽略文件”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
			
		
		
	
Jihongchang(讨论 | 贡献)   (建立内容为“在项目根目录下创建 .gitignore 文件,在其中列出待匹配文件的模式。   === 示例1 === <syntaxhighlight lang="console"> *.[oa] </syntaxhighl…”的新页面)  | 
			
(没有差异) 
 | 
2022年12月14日 (三) 15:03的版本
在项目根目录下创建 .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 文件
忽略 .a 类型的文件