我的 git repo 中有一个名为packages的文件夹,我想忽略该文件夹中的所有内容,但具有目标扩展名的文件除外。我在我的 gitignore 中试过这个:
packages/
!packages/**/*.targets
但它不起作用。
如何忽略该文件夹而不是目标文件?
我的 git repo 中有一个名为packages的文件夹,我想忽略该文件夹中的所有内容,但具有目标扩展名的文件除外。我在我的 gitignore 中试过这个:
packages/
!packages/**/*.targets
但它不起作用。
如何忽略该文件夹而不是目标文件?
这似乎对我有用(Git 1.8.2.1):
packages/**/*.*
!packages/**/*.targets
我需要这个*.*
部分,否则**
匹配 0 个目录,最后一个单独*
的将匹配包内的任何目录,实际上忽略每个目录和里面的任何文件。
我希望这*.*
对您来说还不错,但是没有扩展名的文件很少见。
唔。我认为不可能使用直接的 .gitignore 规则。
但是,这应该会有所帮助:
.gitignore:
packages/
添加模式文件:
git add --force -- $(find packages/ -type f -iname '*.targets')
您甚至可以将添加添加到预提交挂钩中,以使其在出现新目标文件时自动获取它们。
要正确支持带有特殊字符的文件名:
find packages/ -type f -iname '*.targets' -exec git add --force -- {} +