我有一个类似于下面的文件结构:
foo/bar.foo
node_modules/foo/bar.json
node_modules/foo/bar/foo.bar
我想要做的是忽略里面的所有文件node_modules
文件夹除了json
文件,以便我最终在我的存储库中得到以下文件结构:
foo/bar.foo
node_modules/foo/bar.json
我试图找到一种简单的方法来做到这一点,但我还没有完全做到这一点。
这是我在我的.gitignore
:
# ignore everything inside node_modules
node_modules/*
# But descend into directories
!node_modules/**/*.json
达到预期结果的最优雅的方法是什么?
附:我不知道我在做什么。
In the 吉蒂诺尔 https://git-scm.com/docs/gitignore文档中,他们指出:
如果排除某个文件的父目录,则无法重新包含该文件。
这为您的规则失败的原因提供了直觉。您可以使用 xargs 魔法手动添加缺少的 json 文件。每当添加新包时,您都必须运行它,但是一旦它们被跟踪,一切都会起作用。
find node_modules/* -name *.json -print |xargs git add -f
我用Git测试过2.18.0
并确认以这种方式添加后,您忽略的目录中的文件可以正常工作。这-f
对于您排除的更深路径,需要上面的参数.gitignore
rules.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)