48

这是我的文件夹结构:

data/
    .gitignore
    uploads/
        .gitignore

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

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

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

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

4

3 回答 3

85

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

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

    folder/*
    !folder/.gitkeep
    

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

于 2013-09-25T12:37:10.417 回答
43

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

# Ignore everything in this directory
*
# Except this file
!.gitignore
# Except folders
!*/
于 2013-09-21T07:32:10.463 回答
-3

尝试这个:

*.*
!.gitignore
!*/*
于 2016-04-17T21:59:05.940 回答