代码之家  ›  专栏  ›  技术社区  ›  troelskn

如何使本地分支跟踪具有不同名称的远程分支?

git
  •  0
  • troelskn  · 技术社区  · 14 年前

    我有一个带有两个服务器(分段和生产)的设置。这两个都有一个主分支,我可以推动(我使用Heroku,但这并不重要)。

    目前,我可以使用以下命令推送到临时阶段:

    git push staging master
    

    这将推动我的本地 master 分支机构。但是,我想要一个叫 staging ,将推送到远程存储库 staging/master . 怎么能做到?

    2 回复  |  直到 14 年前
        1
  •  1
  •   David Z    14 年前

    手动操作,

    git push staging staging:master
    

    我建议您设置一个允许您自动执行的配置,不过:

    git config remote.staging.push refs/heads/staging:refs/heads/master
    

    告诉Git把本地 staging 分支到 master 在远程端(即临时远程端)(如果我正确记住语法),并且可以选择

    git config branch.staging.remote staging
    

    这会告诉吉特如果你有 分期 签出并键入 git push ,它应该推到 分期 远程的

    当然,我想你可以用 git branch git remote 但是我刚刚经历了创建类似设置(2个服务器)的过程,发现直接使用配置更容易。

        2
  •  2
  •   Amber    14 年前

    要始终推动跟踪:

    首先,确保配置选项 push.default 设置为 tracking :

    git config push.default tracking
    

    其次,为本地分支设置上游:

    git branch --set-upstream <localbranch> <remotename>/<remotebranch>
    

    只将一个特定分支推送到特定分支 不同的 远程分支

    或者,如果您想保持默认的推送行为(将所有分支推送到远程匹配),您可以单独告诉Git,当推送到特定的远程时,您的本地分支实际上“匹配”了远程上的另一个分支:

    git config remote.<remotename>.push refs/heads/<localbranch>:refs/heads/<remotebranch>
    

    有关Git配置选项的详细信息,请参阅以下内容:

    http://git-scm.com/docs/git-config