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

时间:2010-08-29 22:54:55

标签: git

我有两个服务器(登台和制作)的设置。这两个都有一个我可以推送的主分支(我使用heroku,虽然它不重要)。

目前,我可以使用此命令推送到暂存:

git push staging master

哪个会推送我的本地master分支机构。但是,我希望有一个名为staging的本地分支,它将推送到远程存储库staging/master。怎么办呢?

2 个答案:

答案 0 :(得分:2)

始终追求跟踪:

首先,确保配置选项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

答案 1 :(得分:1)

手动完成,

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如果您签出staging并输入git push,则应该推送到staging遥控器。

当然我认为您可以使用git branchgit remote执行此操作,但我刚刚完成了创建类似设置(2台服务器)的过程,我发现使用它更容易配置直接。