Git - 每个分支的不同遥控器

时间:2013-04-02 21:58:28

标签: git github merge git-branch git-merge

我不确定如何正确地问这个问题,但我会尽力做到最好 - 我绝不是Git爱好者,我知道如何到使用基本命令但不使用高级术语/功能。

我从私有服务器myrepo克隆了一个私有存储库git.mydomain.com。我熟悉使用git checkout -b mybranch在同一存储库上分支代码的过程 - 但是我想分支到GitHub而不是我的私有服务器,导致类似这样的事情:

Repo       Branch      Remote Location    (Purpose)
------------------------------------------------------------
myrepo --> private --> git.mydomain.com  (Incremental work)
  |
  +------> public  --> github.com        (Public releases)

基本上我希望能够git checkout publicgit merge private

1 个答案:

答案 0 :(得分:36)

您可以使用以下命令将不同的分支设置为推送到不同服务器的各个分支:

从Git 1.8.0开始:

git branch -u origin/foo foo

注意:如果遗漏了最后一个foo,它将选择当前分支。

从Git 1.7.0开始:

git branch --set-upstream foo origin/foo

在你的情况下,你可以通过添加你的两个遥控器(mydomain和github)并设置每个分支来单独推送它们来使用它。它可能看起来像这样:

如果您还没有,请确保添加遥控器:

git remote add github git://github.com/foo/myrepo.git
git remote add mydomain git://git.mydomain.com/foo/myrepo.git

然后将分支设置为推送到正确的位置:

git branch -u mydomain/private private
git branch -u github/public public

完成所有设置后,您只需使用git pushgit pull即可推送。当你在公共分支机构时,这将推送到github,当你在你的私人分支机构时,它将推送到你的mydomain.com。