【问题标题】:Set target branch for non-tracking remote为非跟踪远程设置目标分支
【发布时间】:2013-10-02 11:22:15
【问题描述】:

我在 heroku 上部署了一个网络应用程序。为了更新正在运行的实例,我必须 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 行之后输入master。我永远不想在heroku 上推送master 以外的任何东西。是否可以更改我的 git 配置,以便推送到本地 release 分支的 heroku 更新 heroku 上的 master 分支?

【问题讨论】:

    标签: git git-branch git-push


    【解决方案1】:

    将自定义 refspec 添加到配置并表示将主题分支 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

    有关自定义 refspec 的更多信息是 available here

    【讨论】:

      【解决方案2】:

      git 1.8:

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

      git 1.7:

      git branch --set-upstream release heroku/master

      【讨论】:

      • 我可能错了,但我认为这不是我想要的。我希望git pushgit pull 仍然引用origin;但我希望 git push heroku 定位 heroku 遥控器上的 master 分支。
      猜你喜欢
      • 2021-02-09
      • 2021-07-10
      • 2013-08-13
      • 2015-02-25
      • 2013-04-30
      • 2014-08-22
      • 2014-02-04
      • 2023-03-09
      • 2010-09-27
      相关资源
      最近更新 更多