gitignore匹配规则

匹配模式

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

glob模式

类似于shell使用的简化版正则表达式:

  • *匹配0个或多个字符;
  • [abc]匹配方括号内的任意字符;
  • ?匹配任意单个字符;
  • **匹配嵌套目录

Examples

模式description
*.[oa]忽略以.o 或以.a结尾的文件
!lib.a任然跟踪lib.a文件, 即使上一行指令要忽略.a类型的文件 取反
/TODO只忽略当前目录下的TODO文件,而不忽略子目录下的TODO文件 禁止递归
build/忽略build/目录下的所有文件 目录
doc/*.txt忽略doc/notes.txt,而不忽略doc/server/notes.txt
doc/**/*.pdf忽略doc/目录下所有的.pdf文件 嵌套目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.gitignore规则不生效可能是由以下几个原因引起的: 1. 文件已经被Git跟踪:如果文件已经被Git跟踪,即使在.gitignore中指定排除该文件,Git仍然会继续跟踪它。在这种情况下,你需要先使用以下命令将该文件从Git中移除: ``` git rm --cached 文件路径 ``` 然后提交更改: ``` git commit -m "Remove tracked file" ``` 2. .gitignore规则不正确:请确保你的.gitignore规则正确无误。一般情况下,.gitignore文件遵循以下规则: - 使用斜杠(/)表示目录,并且可以递归地排除目录下的所有文件和子目录。 - 使用星号(*)表示任意字符,使用问号(?)表示任意单个字符。 - 使用叹号(!)表示不排除指定的文件或路径。 如果你不确定规则是否正确,可以使用git check-ignore命令来检查.gitignore是否有效: ``` git check-ignore -v 文件路径 ``` 3. 文件已经被缓存:如果文件已经被Git缓存,.gitignore规则将不会对其生效。你可以使用以下命令清除缓存: ``` git rm -r --cached . git add . ``` 4. 已经存在的文件:如果在.gitignore规则添加之后,你创建了新的文件,并且这些文件与.gitignore中的规则匹配,那么这些新文件将会被Git跟踪。在这种情况下,你需要先将这些文件移除Git的跟踪,然后再提交更改。 如果以上方法都没有解决你的问题,可能是其他原因导致的。你可以提供更多具体的信息,以便我能够给出更精确的解答。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值