git中忽略/取消标记文件的确切方法

时间:2014-10-03 07:28:34

标签: git

在我的项目中,我有一个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上的代码行。

这次我真的很想做好。

3 个答案:

答案 0 :(得分:5)

您可以添加该文件,然后使用--force选项开始跟踪它:

git add --force node_module/passport-saml/saml.js

来自git add man page

-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

那就是它。无需任何特殊规则或例外。