【问题标题】:git / Heroku not working as expectedgit / Heroku 没有按预期工作
【发布时间】:2018-01-15 10:52:39
【问题描述】:

这是一个关于 Heroku 及其版本控制系统的问题。

远非 VCS 专家,我可能会问一些非常基本的问题。在那种情况下,请原谅我。 这就是问题所在。

  • 当我去编辑我的项目中的一个文件并保存它时,例如 index.js。然后我可以在终端中运行以下命令(正如我在一些教程中学会的那样):

    $ 混帐添加。 && git commit -m "my-nice-project" && git push heroku master

这可以按我的预期更新服务器上的应用程序。

  • 如果我再次重复同样的评论:

    $ 混帐添加。 && 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
$ 

这是为什么呢?事情在本地发生了变化,我希望服务器上的应用程序会更新。 我错过了什么?

【问题讨论】:

  • 这个标题好宽泛哈哈

标签: git heroku version-control


【解决方案1】:

主要是npm包不是git控制的。

你可以检查你的git repo,如果.gitignore的内容包含npm包所在的文件或路径。

如果你想让 npm 包由 git 控制版本,你可以删除关于包名或路径的内容。然后 git 会跟踪包的变化。

git版本控制中是否添加node_modules取决于你如何使用npm包:

在大多数情况下,.gitignore 会忽略 node_modules。

但如果需要锁定包,可以在git版本控制中添加。

更多详情,可以参考node_modules in gitShould I check in node_modules to git when creating a node.js app on Heroku

【讨论】:

  • 确实node_modules在.gitignore里面,我这里有理由把它去掉。但我想 npm 也可能有充分的理由把它放在那里。有什么特别的建议吗?
  • 我在回答中添加了 是否在 git 版本控制中添加 node_modules 部分。你可以决定你的情况。
猜你喜欢
  • 2010-11-26
  • 2014-07-25
  • 2015-03-30
  • 1970-01-01
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2014-10-15
  • 2021-10-19
相关资源
最近更新 更多