928

我想将一个空白文件夹签入我的 Git 存储库。实际上,我需要忽略文件夹中的所有文件和文件夹,而不是文件夹本身。我怎样才能做到这一点?我应该在我的.gitignore文件中放什么?

对于那些想知道我为什么要这样做的人,我的存储库中有一个“上传”目录。我想提交空白目录,但没有所有内容。

4

2 回答 2

1511

把这个.gitignore放到文件夹里,然后git add .gitignore

*
*/
!.gitignore

*行告诉 git 忽略文件夹中的所有文件,但!.gitignore告诉 git 仍然包含该.gitignore文件。这样,您的本地存储库和存储库的任何其他克隆都将获得空文件夹和.gitignore它需要的文件夹。

编辑:可能很明显,但也添加*/.gitignore也忽略子文件夹。

于 2011-04-07T13:37:06.407 回答
881

你不能在 git 中提交空文件夹。如果你想让它显示出来,你需要在里面放一些东西,即使只是一个空文件。

例如,将一个名为的空文件添加.gitkeep到您要保留的文件夹中,然后在您的.gitignore文件中写入:

# exclude everything
somefolder/*

# exception to the rule
!somefolder/.gitkeep 

提交您的.gitignore.gitkeep文件,这应该可以解决您的问题。

于 2010-11-22T20:43:48.783 回答