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

Cra*_*son 34 git merge github git-merge git-branch

我不确定如何正确地问这个,但我会尽力而为 - 我绝不是一个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)
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*ren 37

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

从Git 1.8.0开始:

git branch -u origin/foo foo
Run Code Online (Sandbox Code Playgroud)

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

从Git 1.7.0开始:

git branch --set-upstream foo origin/foo
Run Code Online (Sandbox Code Playgroud)

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

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

git remote add github git://github.com/foo/myrepo.git
git remote add mydomain git://git.mydomain.com/foo/myrepo.git
Run Code Online (Sandbox Code Playgroud)

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

git branch -u mydomain/private private
git branch -u github/public public
Run Code Online (Sandbox Code Playgroud)

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