gitignore 忽略目录下文件仅保留目录形态

现有目录结构如下

├── public                     
    │── x1
    │   │── file1
    │   └── file2
    │── x2
    │   │── file3
    │   └── file4
    └── thumb
        │── file5
        └── file6                    

想要忽略 x1,x2 目录及全部文件,忽略 thumb 目录下的文件保留 thumb 目录结构。

创建 public/.gitignore 文件,语义为“忽略 当前目录下的全部文件和目录,但不忽略 thumb 目录”。

# public/.gitignore
# 忽略
*

# 不忽略
!.gitignore
!thumb/

但是,这样不能满足我们的要求,虽然忽略了 x1-xn 的目录及其下文件,保留了 thumb 目录,但 thumb 目录下的文件也被保留下来,我们要的是只保留 thumb 目录结构。

再创建 public/thumb/.gitignore 文件,进行处理。语义为“忽略当前目录的所有文件,但不忽略 .gitignore 文件”。

# public/thumb/.gitignore

*
!.gitignore

可以看到 public/.gitignore 文件和 public/thumb/.gitignore 文件对于 thumb 目录的忽略规则是由冲突的。因为当前目录的规则优先级高于父级目录定义的规则,所以提交 git 后,thumb 目录下仅存在 .gitignore 文件,thumb 目录将得以保留。

若没有!.gitignore这条规则,thumb 目录下的所有内容,将全部被忽略,目录下没有内容,提交 git 后,目录不会被提交。

git
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!