最新消息:20210917 已从crifan.com换到crifan.org

【已解决】.gitignore中如何写通配符型的规则实现子目录任何层级的output都可以保留

output crifan 533浏览 0评论
折腾:
【已解决】gitbook输出目录中6级子目录无法正常显示
之后,后来发现,貌似之前加到.gitignore中的新规则,都丢失了:
导致:子目录中output相关文件,又被排除了。。。
去找原因,找到了
是之前调用的公共的.gitignore文件,覆盖了当前的文件:
common/gitbook_makefile.mk
COMMON_GITIGNORE_FILE=$(GITBOOK_ROOT_COMMON)/config/common/common_gitignore

## copy common .gitignore
copy_gitignore:
    cp $(COMMON_GITIGNORE_FILE) .gitignore
common/config/common/common_gitignore
node_modules/
output/
debug/


*.zip


.DS_Store
然后现在:
除了要加到公共的文件中
另外,也想要:
合并之前2个规则:
!src/commands/file_folder/file/output
!src/commands/output
为更通用的单个规则
以便于,希望实现,任何层级的任何一个子目录,叫做output,都可以被保留
且此处特殊在于:
已有
output/
目前是排除顶层的 output目录
且希望保留 src下面的 任意层级子目录 中的 output 目录
gitignore any subdirectory with name
gitignore – ignoring any ‘bin’ directory on a git project – Stack Overflow
 git —version
git version 2.21.1 (Apple Git-122.3)
此处是1.8.2版本之后
**是有特殊含义的
The patterns in .gitignore and .gitattributes files can have **/, as a pattern that matches 0 or more levels of subdirectory.
E.g. "foo/**/bar" matches "bar" in "foo" itself or in a subdirectory of "foo".
去试试
!src/**/output
好像是可以的:
没加之前,2个output都是灰色,被排除了:
加了:
!src/**/output
之后:
2个(不同层级的)output目录,颜色变白色,被包含进来了:
然后再去加到:
common/config/common/common_gitignore
node_modules/
output/
debug/


*.zip


.DS_Store


!src/**/output
中即可。
生成的gitbook内容,就正常,对应目录可以点击了:
【总结】
此处,之前已有的
.gitignore
output/
会导致,所有根目录和任意层级子目录中 output都会被排除掉
此处特殊情况是
src目录下,任意层级子目录中,可能会有output目录,是有效文件,不希望被排除掉
最后规则是:
新增规则:
!src/**/output
变成:
output/

!src/**/output
即可实现:
  • 项目根目录中的 output目录 排除掉
  • src的子目录中,任意层级的 output目录,保留
的效果了。

转载请注明:在路上 » 【已解决】.gitignore中如何写通配符型的规则实现子目录任何层级的output都可以保留

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
91 queries in 0.189 seconds, using 23.36MB memory