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

时间:2013-09-21 07:32:10

标签: git gitignore subdirectory

这是我的文件夹结构:

data/
    .gitignore
    uploads/
        .gitignore

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

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

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

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

3 个答案:

答案 0 :(得分:54)

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

  1. 在没有文件
  2. 的情况下,在要提交的文件夹中添加一个空的.gitkeep文件
  3. .gitkeep文件中排除文件夹,但不包括.gitignore

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

答案 1 :(得分:34)

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

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

答案 2 :(得分:-3)

试试这个:

*.*
!.gitignore
!*/*