如何让Git忽略所有路径或文件名含secret的文件/目录?
Git忽略所有含"secret"的文件/文件夹解决方案
正确的.gitignore规则
直接在project/.gitignore中写入以下规则即可覆盖所有含"secret"的内容:
!.gitignore **/*secret*
为什么之前的规则不生效
你之前写的规则存在两个关键问题:
.*secret.*仅匹配以点开头的隐藏文件,非隐藏文件(比如my_secret.token)完全匹配不到;**/.*secret.*/**只针对隐藏目录,且写法冗余,无法覆盖普通目录或文件的情况。
规则说明
**/*secret*:**匹配任意层级的目录,*secret*匹配文件名/目录名中包含secret的所有内容(无论是否隐藏、无论secret在名称的哪个位置);!.gitignore:确保.gitignore自身不会被忽略,这条规则保留即可。
若文件已被Git追踪的处理方式
如果这些含"secret"的文件之前已经被Git追踪过,需要先取消追踪(不会删除本地文件),再提交更改:
git rm -r --cached . git add . git commit -m "不再追踪含secret的文件/文件夹"
内容的提问来源于stack exchange,提问作者Pavel Niedoba
相关产品推荐
相关产品推荐

