我不确定如何正确地问这个问题,但我会尽力做到最好 - 我绝不是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 public
和git merge private
。
答案 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 push
和git pull
即可推送。当你在公共分支机构时,这将推送到github,当你在你的私人分支机构时,它将推送到你的mydomain.com。