git忽略特定文件(gitignore)
.gitignore
语法规则
- 使用
#
来编写注释,注释的内容不会被git视为忽略规则 - 忽略规则以
/
结尾表示忽略的对象是一个目录,而不是文件 - 忽略规则以
/
开头则表示忽略的对象的路径是相对于项目的根目录,如果某个规则的开头不是/
,那么这条规则的匹配路径会相对于当前.gitignore
文件的位置 - 在忽略规则最开头加上
!
表示不忽略该规则指定的对象(相当于取反) - 可以使用标准glob模式匹配(glob模式就是Linux的shell下简化的正则表达式)
glob模式规则
*
表示匹配0个或任意多个字符?
表示匹配1个任意的字符[]
表示匹配方括号中的任意一个字符,例如[abc]
要么只匹配一个a,要么只匹配一个b,要么只匹配一个c。还可以使用范围表示,例如[0-9]
表示匹配所有的一位数字**
表示匹配任意多层的中间目录,例如a/**z
可匹配a/c/z
,也可匹配a/c/b/z
等等
为什么我设置的忽略规则不生效
有朋友可能遇到过这种情况,在自己的某个项目已经做了一段时间后,想忽略一些项目中的文件和目录,中途增加了一个.gitignore
文件,但是发现commit后,明明设置了忽略的文件仍然被git提交了。这是因为在这条忽略规则添加之前,git就已经跟踪了该文件,要想git应用你编写的全新的忽略规则,你需要先执行git rm -r --cached .
(注意该命令最后还有一个点),然后将所有文件添加到暂存区,再commit,这样你编写的新的忽略规则才会生效,具体过程如下:
1 |
|
示例
1 |
|
git忽略特定文件(gitignore)
http://47.109.28.82/2025/01/22/git忽略特定文件-gitignore/