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/