Git push和git push heroku master的区别

19

我刚刚从PC笔记本电脑转换到Mac,发现我的git命令响应方式有一个奇怪的差异。

在此之前,我会执行以下操作:

git add .
git commit -m "These are my new changes"
git push # This would update my repo on github
{enter password}
git push heroku master # This would push to my app on heroku
{enter password}

现在,当我执行 git push 命令时,应用程序会直接部署到 Heroku 上,而不会同时更新我的 Github 仓库。

我该如何确保两个地方都有更新?

编辑

感谢您的两个回答!我很感激您对 git pushgit push heroku master 之间区别的解释,即 git push 是推送到 origin,而在我的情况下,似乎是推送到了 Heroku 上。

我该如何更改设置,以使它们像以前一样工作?即我想让 git push 命令现在可以推送到我的 Github 仓库,并且我想让 git push heroku master 命令可以推送到 Heroku。目前,前者直接将应用程序推送到了 Heroku,完全绕过了 Github。


我曾经遇到过非常类似的问题,并发现这个链接非常有帮助:https://dev59.com/nnA85IYBdhLWcg3wF_cO - lflores
3个回答

28
为了获得您想要的行为,您需要删除现有的远程并重新添加它们:
git remote show origin # copy down the heroku URL
git remote rm origin
git remote add origin [github URL]
git remote add heroku [heroku URL]

21
可以使用 git remote rename origin heroku 命令将远程库名称从 origin 改为 heroku,然后使用 git remote add origin <github-url> 命令添加 GitHub 上的远程库。这样可以避免手动写入。 - Adam Vandenberg

2
git push命令默认将代码推送到名为origin的远程仓库。通常这个仓库是你从中克隆代码的地方,但你可以稍后更改它。
使用git remote show命令可以查看所有远程仓库的列表。然后,git remote show origingit remote show heroku会详细说明每个仓库的配置。
你可以使用git remote命令管理和更改每个远程仓库的URL。

2
仅使用命令git push--即省略参数--意味着git将使用默认设置,其中目标是您的第一个远程存储库(通常命名为“origin”),源是您的本地主分支。在您的情况下,我猜测您最初从GitHub克隆了该项目,这使得您的默认远程是GitHub。
当您指定参数git push heroku master时,您明确表示要将本地主分支推送到名为heroku的远程,因此,GitHub不会使用此命令进行更新。
(也许heroku是您PC上的第一个/默认远程,而当您转移到Mac时,origin远程是从GitHub克隆的?)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接