这是关于Heroku及其版本控制系统的问题。
我不仅不是VCS的专家,我可能会问一些非常基本的东西。在那种情况下,请原谅我。 这是问题所在。
当我去项目中编辑文件并保存时,比如说index.js。然后我可以在终端中运行以下命令(正如我在一些教程中学到的那样):
$ git add。 &安培;&安培; git commit -m“my-nice-project”&& git push heroku master
这就像我期望的那样在服务器上更新应用程序。
如果我再次重复相同的评论:
$ git add。 &安培;&安培; git commit -m“my-nice-project”&& git push heroku master
我收到一条消息说:
On branch master
Your branch is up-to-date with 'heroku/master'.
nothing to commit, working tree clean
$
在这里,我也得到了我的期望,因为我没有触及任何项目。
但接下来的情况不是我期望的情况,如果有人可以帮我澄清事情,我会很高兴。
我跑了这个:
$ npm outdated
检查旧包裹;然后我跑:
$ npm update
更新旧包裹;我可以用眼睛看到项目树形结构发生了变化。
现在我在这里跑:
$ git add . && git commit -m "my-nice-project" && git push heroku master
我仍然收到一条消息:
On branch master
Your branch is up-to-date with 'heroku/master'.
nothing to commit, working tree clean
$
为什么?事情已在本地发生变化,我希望服务器上的应用程序更新。 我错过了什么?
答案 0 :(得分:1)
这主要是因为npm包不是由git控制的版本。
如果.gitignore
的内容包含npm包所在的文件或路径,您可以检查您的git repo。
如果你想让npm包由git控制版本,你可以删除有关包名或路径的内容。然后git将跟踪包的更改。
是否在git版本控制中添加node_modules 取决于您使用npm包的方式:
对于大多数情况,.gitignore
忽略node_modules。
但如果需要锁定软件包,可以将其添加到git版本控制中。
更多详细信息,您可以参考node_modules in git和Should I check in node_modules to git when creating a node.js app on Heroku。