Git,忽略文件夹,除了一些具有特定扩展名的文件

Esc*_*ar5 7 git version-control gitignore

我的git repo中有一个名为packages的文件夹,我想忽略该文件夹中的所有内容,除了具有目标扩展名的文件.我在我的gitignore中试过这个:

packages/
!packages/**/*.targets
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

如何忽略该文件夹而不是目标文件?

yon*_*ytu 5

这似乎对我有用(Git 1.8.2.1):

packages/**/*.*
!packages/**/*.targets
Run Code Online (Sandbox Code Playgroud)

我需要这个*.*部分,否则**匹配 0 个目录,*最后一个单独的将匹配包内的任何目录,实际上忽略每个目录和里面的任何文件。

我希望这*.*对你来说不是太糟糕,但是没有扩展名的文件是非常罕见的。


seh*_*ehe 0

唔。我认为不可能使用直接 .gitignore 规则。

但是,这应该有所帮助:

您甚至可以将添加添加到预提交挂钩中,以便在新目标文件出现时自动拾取它们。

要正确支持带有特殊字符的文件名:

find packages/ -type f -iname '*.targets' -exec git add --force -- {} +
Run Code Online (Sandbox Code Playgroud)