小智 1157

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

*
*/
!.gitignore
Run Code Online (Sandbox Code Playgroud)

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

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

  • 忽略目录`*/`是不必要的,因为`*`也包含目录. (30认同)
  • [NB](https://git-scm.com/docs/gitignore#_pattern_format)«如果排除了文件的父目录,则无法重新包含该文件。» (3认同)
  • 上面@TimofeyGorshkov 点的解决方法:`*; !dir/; 目录/* ; !dir/reincludefile` (3认同)
  • 应该注意的是,第二个“.gitignore”不需要命名。只要文件内容包含“!filename”,任何“filename”都可以。我提到这一点是因为我们认为拥有一个用于保存目录的“.gitignore”文件似乎具有误导性且不清楚。 (3认同)
  • 这应该是公认的解决方案。 (3认同)

kub*_*ubi 516

你不能在git中提交空文件夹.如果你想要它出现,你需要在其中放入一些东西,甚至只是一个空文件.

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

# exclude everything
somefolder/*

# exception to the rule
!somefolder/.gitkeep 
Run Code Online (Sandbox Code Playgroud)

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

  • 最好的方法是Trianam上面列出的.在目录中包含.gitignore文件.这个.gitignore应该忽略该dir(*)中的所有文件,除了它自己(!.gitignore). (44认同)
  • 这不起作用 (11认同)
  • 没有`--bare` 选项吗? (2认同)