2013-09-26 29 views
0

我有一个部署在heroku上的web应用程序。为了更新运行实例,我必须将git push我的代码转移到heroku远程的master分支。设置非跟踪远程目标分支

我还保留我的代码在github上,并有github作为我的origin和上游存储库。我正在尝试一个稍微新的工作流程,因此我的本地和github master分支包含我正在本地开发的最新稳定版本;而本地和github release分支包含实际在heroku上运行的代码。

鉴于这一切,我目前的工作流程是这样的:

$ git checkout master 
... make some changes ... 
$ git commit 
$ git push    # to origin/master - that is, github 
$ git checkout release 
$ git merge master 
$ git push heroku master # Push the release branch to heroku's master branch, thereby sending it live. 

我想,以避免每次git push heroku行后键入masterheroku我永远不会想推到master以外的任何东西。是否有可能改变我的git配置,以便推到heroku的本地release分支更新master分支heroku

回答

1

添加自定义的Refspec到configuation并表示该主题分支release被分配到的master目的地的远程分支将执行所需的git push heroku操作。

git config --add remote.heroku.push refs/heads/release:refs/heads/master

换句话说,操作的Refspec是说任何推到这个远程:

  1. 源分支(本地)是release分支
  2. 目标分支(远程)是master分支
  3. 始终在此远程传输release提交到master

更多关于定制refspecs是available here

+0

似乎这样做,谢谢 – Chowlett

0

混帐1.8:

git branch --set-upstream-to=heroku/master release

混帐1.7:

git branch --set-upstream release heroku/master

+0

我可能是错的,但我不认为这是我想要的。我想'git push'和'git pull'仍然是指“origin”;但我希望'git push heroku'将目标锁定在heroku远程的'master'分支上。 – Chowlett

+0

是的,我的错误。 – zanerock