2015-11-04 94 views
1

我的家庭文件夹中有一个git repo。我试图不包括我的主文件夹的基本全部,除了我的.vim文件夹。如何git忽略一切,但一个文件夹?

在我的.gitignore,我有

* !.vim

的问题是,这只是增加了.vim目录到我的git回购,而不是它的文件和子目录(及其文件和子目录, 等等)。我想有.vim和它的所有子文件和子目录到我的git仓库中。如何更改此.gitignore所需的行为?

+2

为什么不让你的.vim文件夹成为git仓库? – Schwern

回答

1

*包括当前目录,所以你被咬伤这个“!”

可选前缀否定了这种模式;任何先前模式排除的匹配文件将再次包含在内。 如果排除该文件的父目录,则不可能重新包含文件。出于性能方面的考虑,Git没有列出排除的目录,因此无论它们在何处定义,包含文件的任何模式都无效。

我不知道有什么办法说“一切都在顶层目录除了顶级目录”。

如果你只想把.vim放到Git中,你应该把你的Git仓库放到.vim

2

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

* 
!*/ 

然后你就可以排除.vim/文件夹的内容:

!.vim/**