如何git忽略除一个文件夹之外的所有内容?

时间:2015-11-04 19:06:52

标签: git gitignore git-add

我的主文件夹中有一个git repo。我试图基本上不包括我的主文件夹,但我的.vim文件夹除外。

在我的.gitignore中,我有

* !.vim

问题是这只会将.vim目录添加到我的git仓库中,而不是它的文件及其子目录(及其文件及其子目录等)。我希望将.vim及其所有子文件和子目录放入我的git仓库中。如何针对所需行为更改此.gitignore

2 个答案:

答案 0 :(得分:2)

如果要排除文件夹内容,则需要排除第一个文件夹(因为parent directory rule):

*
!*/

然后您可以排除.vim/文件夹内容:

!.vim/**

答案 1 :(得分:1)

*包含当前目录,所以你被这个被咬了:

  

可选前缀“!”否定了这种模式;之前模式排除的任何匹配文件将再次包含在内。 如果排除该文件的父目录,则无法重新包含文件。 由于性能原因,Git不会列出排除的目录,因此包含任何模式文件无效,无论它们在何处定义。

我不知道有什么方法可以说“顶级目录中的所有内容,除了顶级目录”。

如果您只想将.vim放入Git,则应将您的Git存储库放在.vim中。