乐趣区

关于git: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 后,目录不会被提交。

退出移动版