我有一个特定的问题,到目前为止我发现的方案,here,here和here(以及其他方面)都没有涵盖这个问题。
我有一个node.js项目,并决定不在我的git repo中包含node_modules目录(Here是一些支持和反对的参数)。但是,我正在设置一个测试服务器的常规部署,为此我想部署完整的应用程序,加载依赖项(也许将来我也将包括节点服务器,但现在只是依赖项)。
所以我创建了一个test-deploy分支,在其上我忽略了vagrant文件夹,一些静态页面等等。我通过从.gitignore文件中删除它来包含node_modules然后将分支推送到我所拥有的远程存储库设置挂钩以通知我的测试服务器有一个新的部署,它应该从远程拉。
我现在如何重新检查我的开发分支?我试图将node_modules添加回.gitignore文件但是当我签出我的开发分支时,git(正确地说是这样)删除了我的所有节点模块,因为它们不被视为项目的一部分。
答案 0 :(得分:0)
在写这个问题时,我正在尝试一些想法并遇到this回答如何忽略以前提交的文件。在此之后,在替换.gitignore文件中的node_module目录之后,我运行了命令
git rm -r --cached node_modules/*
添加-r
标志来处理递归目录遍历。现在当我换回开发分支时,我的模块文件仍在那里(虽然我丢失了我的Vagrant盒子!)
总而言之,为了在部署分支中包含被忽略的文件而不是在再次签出开发分支时丢失它们,您应该:
git rm -r --cached node_modules/*
以再次从存储库中删除文件。