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

标签 git gitignore subdirectory

这是我的文件夹结构:

data/
    .gitignore
    uploads/
        .gitignore

我想提交文件夹而不是其中的文件。

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

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

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

最佳答案

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

  1. 在要提交的文件夹中添加一个空的.gitkeep 文件
  2. 从您的 ma​​in .gitignore 文件中排除文件夹,但不排除 .gitkeep

    folder/*
    !folder/.gitkeep
    

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

关于Git忽略目录中除子文件夹之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18930103/

相关文章:

git - 无法使用 pip 在 github 上安装特定的 git 分支 - 权限被拒绝(公钥)

git - 递归忽略特定目录中除 .json 文件之外的所有文件

git - 如何只忽略一个没有扩展名的文件?

amazon-s3 - 使用 AWS SDK 时,为什么 S3 用户策略的条件策略语句中使用双引号 (") be parsed as (\")?

git - 重组 Git 存储库中的文件

Git 交互式 rebase 重写提交

git - 这是在不使用 git merge 当前分支的情况下创建新分支的好方法吗?

regex - Git 忽略 : How to match one or more digits

C# 搜索子目录(不是文件)

c++ - Tupfile 中子目录的通配符