如何将忽略的文件从开发分支添加到git中的deploy分支

时间:2015-03-23 19:40:34

标签: node.js git gitignore

我有一个特定的问题,到目前为止我发现的方案,hereherehere(以及其他方面)都没有涵盖这个问题。

我有一个node.js项目,并决定不在我的git repo中包含node_modules目录(Here是一些支持和反对的参数)。但是,我正在设置一个测试服务器的常规部署,为此我想部署完整的应用程序,加载依赖项(也许将来我也将包括节点服务器,但现在只是依赖项)。

所以我创建了一个test-deploy分支,在其上我忽略了vagrant文​​件夹,一些静态页面等等。我通过从.gitignore文件中删除它来包含node_modules然后将分支推送到我所拥有的远程存储库设置挂钩以通知我的测试服务器有一个新的部署,它应该从远程拉。

我现在如何重新检查我的开发分支?我试图将node_modules添加回.gitignore文件但是当我签出我的开发分支时,git(正确地说是这样)删除了我的所有节点模块,因为它们不被视为项目的一部分。

1 个答案:

答案 0 :(得分:0)

在写这个问题时,我正在尝试一些想法并遇到this回答如何忽略以前提交的文件。在此之后,在替换.gitignore文件中的node_module目录之后,我运行了命令

git rm -r --cached node_modules/*

添加-r标志来处理递归目录遍历。现在当我换回开发分支时,我的模块文件仍在那里(虽然我丢失了我的Vagrant盒子!)

总而言之,为了在部署分支中包含被忽略的文件而不是在再次签出开发分支时丢失它们,您应该:

  • 检查部署分支。
  • 从.gitignore文件中删除node_modules / *
  • 将模块文件添加到暂存和提交,推送或任何您需要执行的操作
  • 再次将node_mudules / *添加到.gitignore文件
  • 运行git rm -r --cached node_modules/*以再次从存储库中删除文件。
  • 现在,您可以检查开发分支,而不会丢失该分支中的节点模块。