在我的项目中,我有一个gitignore文件,它很好地具有忽略node_modules的语句,例如:
########################
# node.js / npm
########################
lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
logs
results
node_modules
它的工作方式与预期一致。 Git在node_modules中没有看到任何变化。
我在node_modules中的文件中有更改,我希望在进一步的提交中包含这些更改,因为它肯定会更改。但与此同时,我希望忽略其余的node_modules。 这是我需要的例子" unignore":
node_module/passport-saml/saml.js
前段时间,我遇到了同样的问题。我已经按照一些说明怎么做了,但我最终弄得一团糟......我记得我用过git uncheck / untrack或类似的东西。我花了更多的时间来修复我在试图" unignore"文件。最后,我最终手动更改了git上的代码行。
这次我真的很想做好。
答案 0 :(得分:5)
您可以添加该文件,然后使用--force
选项开始跟踪它:
git add --force node_module/passport-saml/saml.js
-f
--force
允许添加其他被忽略的文件。
答案 1 :(得分:5)
您可以在.gitignore文件中的路径之前使用!
来反转模式:
!node_module/passport-saml/saml.js
来自man page:
可选前缀“!”否定了这种模式;任何匹配的文件 被先前模式排除的内容将再次包含
答案 2 :(得分:2)
一旦文件被添加一次,你就不必添加任何特殊的异常, git 已经处理过了。
要在.gitignore
中添加符合过滤条件的文件,只需添加-f
参数即可强制使用该文件:
git add -f node_module/passport-saml/saml.js
添加文件后,即使忽略过滤器匹配,也会像跟踪任何其他文件一样进行跟踪。
只需更改它,然后照常添加:
git add node_module/passport-saml/saml.js
那就是它。无需任何特殊规则或例外。