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

Git 如何使本地分支跟踪具有不同名称的远程分支?,git,Git,我有一个带有两台服务器的设置(暂存和生产)。这两个分支都有一个主分支,我可以推它(我使用heroku,但这并不重要) 目前,我可以使用以下命令推送到暂存: git push staging master 这将推送我的本地主机分支。但是,我希望有一个名为staging的本地分支,它将推送到远程存储库staging/master。如何做到这一点?要手动完成 git push staging staging:master 我建议您设置一个配置,允许您自动执行此操作,不过: git config r

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

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

git push staging master
这将推送我的本地
主机
分支。但是,我希望有一个名为
staging
的本地分支,它将推送到远程存储库
staging/master
。如何做到这一点?

要手动完成

git push staging staging:master
我建议您设置一个配置,允许您自动执行此操作,不过:

git config remote.staging.push refs/heads/staging:refs/heads/master
它告诉git将本地的
staging
分支推送到远程端的
master
(即staging-remote)(如果我正确记住了语法),并且可以选择

git config branch.staging.remote staging
这将告诉git,如果您签出了
staging
,只需键入
git push
,它就应该推送到
staging
远程

当然,我认为您可以使用
git branch
git remote
来实现这一点,但我刚刚经历了创建类似设置(2台服务器)的过程,我发现直接使用配置更容易。

要手动完成

git push staging staging:master
我建议您设置一个配置,允许您自动执行此操作,不过:

git config remote.staging.push refs/heads/staging:refs/heads/master
它告诉git将本地的
staging
分支推送到远程端的
master
(即staging-remote)(如果我正确记住了语法),并且可以选择

git config branch.staging.remote staging
这将告诉git,如果您签出了
staging
,只需键入
git push
,它就应该推送到
staging
远程

当然,我认为您可以使用
git branch
git remote
来实现这一点,但我刚刚经历了创建类似设置(2台服务器)的过程,我发现直接使用配置更容易。

要始终推动跟踪: 首先,确保配置选项
push.default
设置为
tracking

git config push.default tracking
其次,为本地分支设置上游:

git branch --set-upstream <localbranch> <remotename>/<remotebranch>
git分支——设置为上游/
仅将一个特定分支推送到特定的不同远程分支 或者,如果您想保持默认的推送行为(将所有分支推送到远程上的匹配),您可以单独告诉Git,当推送到特定的远程时,您的本地分支实际上“匹配”了远程上的另一个分支:

git config remote.<remotename>.push refs/heads/<localbranch>:refs/heads/<remotebranch>
git config remote..push refs/heads/:refs/heads/
有关Git配置选项的更多详细信息,请参见此处:

要始终按入跟踪: 首先,确保配置选项
push.default
设置为
tracking

git config push.default tracking
其次,为本地分支设置上游:

git branch --set-upstream <localbranch> <remotename>/<remotebranch>
git分支——设置为上游/
仅将一个特定分支推送到特定的不同远程分支 或者,如果您想保持默认的推送行为(将所有分支推送到远程上的匹配),您可以单独告诉Git,当推送到特定的远程时,您的本地分支实际上“匹配”了远程上的另一个分支:

git config remote.<remotename>.push refs/heads/<localbranch>:refs/heads/<remotebranch>
git config remote..push refs/heads/:refs/heads/
有关Git配置选项的更多详细信息,请参见此处:


作为旁注,我写了一篇关于使用git管理临时服务器和生产服务器的文章;我不知道这是否与您或阅读此问题的其他人有关;我不知道这是否与你或其他阅读此问题的人有关。