heroku和github在同一时间

K L*_*K L 60 git github heroku

所以我理解heroku是一个git存储库,但是我想说我想使用github和一个存储库.如何设置它以便我有两个存储库并且两者都是同步的?

Dan*_*rst 89

你可以在git安装上有多个遥控器.你会有一个github遥控器和一个heroku遥控器.

假设你已经有github设置,那么你可能会推送到github,例如:

git push origin master

origin是你的遥控器,master是你的分支.

按照Heroku入门中的说明选择所需语言并继续学习本教程.本教程假设您已经安装了github,并将向您展示如何创建您的heroku遥控器 - 通过heroku create.

然后你正常推送到github,并通过以下方式推送到heroku:

git push heroku master

适用相同的格式 - heroku是您的遥控器,master是您的分支机构.你没有在这里覆盖你的Github遥控器,你正在添加另一个,所以你仍然可以通过一个提交来完成两个工作,例如:

git add .
git commit -m "Going to push to Heroku and Git"
git push origin master -- push to Github Master branch
git push heroku master -- push to Heroku
Run Code Online (Sandbox Code Playgroud)

  • 这不是"工作的两倍".这是完成两个完全独立的动作的两个推动.一个推向Github,另一个推向Heroku.如果你只需要推到一个或另一个,那么你只需要一推. (11认同)
  • 两次推动似乎是工作的两倍. (4认同)
  • @DanHoerst是否可以只拥有一个存储库?我的意思是我们可以推送到heroku repo并让github repo更新吗?我们可以在github上找到heroku repo的副本吗? (3认同)
  • @aandis Heroku现在支持Github集成,如果需要的话,仅允许您使用Github存储库:https://devcenter.heroku.com/articles/github-integration (2认同)

0xc*_*aff 34

如果你想能够推送到多个遥控器:

首先添加它们:

git remote add origin <github repo>
git remote add heroku git@heroku.com:<app name>.git
Run Code Online (Sandbox Code Playgroud)

然后 push

git push origin master
git push heroku master
Run Code Online (Sandbox Code Playgroud)

如果你想同时推送到两个遥控器:

编辑配置文件,以便origin指向heroku和github:

git config -e
Run Code Online (Sandbox Code Playgroud)

添加/替换:

[remote "origin"]
    url = git@github.com:username/somerepo.git
    url = ssh://git@bitbucket.org/username/somerepo.git
Run Code Online (Sandbox Code Playgroud)

由于您正在使用github,您可以通过导航到以下内容与heroku集成:

https://dashboard.heroku.com/apps/<app name>/settings#github-repo
Run Code Online (Sandbox Code Playgroud)

并添加您的存储库名称.

github整合

如果你想在提交给GitHub后自动推送到heroku:

您将需要使用像TravisCI这样的持续集成平台.

以下是使这项工作的步骤.你要小心推动生产,确保它在部署之前有效.每种方法都有其优点和缺点.


And*_*ter 23

我认为这实际上是推荐的案例; Heroku git存储库功能实际上是用于部署而不是代码管理.

只需像往常一样使用github来管理你的代码,但是当你准备好部署时,还要推送到Heroku git存储库.没有必要使它们与自动化工具等保持同步,因为您希望能够在不进行部署的情况下推送到github存储库,例如,以便您可以备份或协作处理未完成的功能或维护单独的暂存和生产环境.

  • 您也可以使用 &amp;&amp; 来链接命令,即 git push origin master &amp;&amp; git push heroku master。这将使您能够轻松地在两个平台上进行推送。 (2认同)

Ric*_*own 16

我经常这样做.我为Heroku创建了一个站点,但我想将我的源代码保存在Github中以用于存档目的.我设置了遥控器:

git remote add origin <github repo>

git remote add heroku <heroku repo>

然后,你可以git push origin mastergit push heroku master.Heroku还允许您关联github仓库以查看提交差异.


mee*_*ian 12

因为之前没有人提到过.Git现在允许您为每个遥控器添加多个网址.就这样做:

这将添加fetchpush从github:

git remote add origin git@github.com:yourName/yourGithubRepo.git
Run Code Online (Sandbox Code Playgroud)

这将覆盖github pushheroku push:

git remote set-url origin --push --add git@heroku.com:yourHerokuRepo.git
Run Code Online (Sandbox Code Playgroud)

这将重新添加github push:

git remote set-url origin --push --add git@github.com:yourName/yourGithubRepo.git
Run Code Online (Sandbox Code Playgroud)

这是最终输出:

$ git remote -v
origin  git@github.com:yourName/yourGithubRepo.git (fetch)
origin  git@heroku.com:yourHerokuRepo.git (push)
origin  git@github.com:yourName/yourGithubRepo.git (push)
Run Code Online (Sandbox Code Playgroud)

之后运行:

git push
Run Code Online (Sandbox Code Playgroud)

如果,而不是工作,它说的是关于设置上游,然后首先输入:

git push --set-upstream origin master 
Run Code Online (Sandbox Code Playgroud)