我的git repo中有一个名为 packages 的文件夹,我想忽略该文件夹中的所有内容,但目标扩展名的文件除外。我在我的gitignore中试过这个:
packages/
!packages/**/*.targets
但它没有用。
如何忽略该文件夹而不忽略目标文件?
答案 0 :(得分:3)
这似乎对我有用(Git 1.8.2.1):
packages/**/*.*
!packages/**/*.targets
我需要*.*
部分,否则**
匹配0个目录,最后一个单独的*
将匹配包内的任何目录,几乎忽略每个目录,并且内部的任何文件
我希望*.*
对你来说不是太糟糕,但是没有扩展名的文件非常罕见。
答案 1 :(得分:0)
嗯。我不认为使用直接的.gitignore规则是可能的。
然而,这应该有所帮助:
的.gitignore:
packages/
添加模式文件:
git add --force -- $(find packages/ -type f -iname '*.targets')
你甚至可以将添加到预提交钩子中,以便在出现时自动获取新的目标文件。
正确支持带有特殊字符的文件名:
find packages/ -type f -iname '*.targets' -exec git add --force -- {} +