Git 忽略目录中除子文件夹之外的所有内容



这是我的文件夹结构:

data/
    .gitignore
    uploads/
        .gitignore

我想提交文件夹,但不提交其中的文件。

所以我在每个文件夹中添加一个 .gitignore 文件,其中包含以下内容:

# Ignore everything in this directory
*
# Except this file
!.gitignore

问题是*在目录上也匹配,所以 git 只跟踪data/.gitignore

请不要滥用.gitignore文件。最好坚持默认的方式,以便以后的开发人员可以快速进入您的项目。

  1. 在要提交的文件夹中添加一个空的.gitkeep文件,而不提交这些文件
  2. .gitignore文件中排除文件夹,但不排除.gitkeep

    folder/*
    !folder/.gitkeep
    

这将忽略文件夹中的所有文件,但不会忽略.gitkeep文件。现在,该文件夹将仅提交.gitkeep文件作为内容。

解决方案非常简单,将!*/添加到 .gitignore 文件中,只有当前文件夹中的文件将被忽略

# Ignore everything in this directory
*
# Except this file
!.gitignore
# Except folders
!*/

试试这个:

*.*
!.gitignore
!*/*

最新更新