46

我不确定如何正确地提出这个问题,但我会尽力而为——我绝不是 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.

4

1 回答 1

50

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

从 Git 1.8.0 开始:

git branch --set-upstream-to 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 --set-upstream-to mydomain/private private
git branch --set-upstream-to github/public public

git push设置完成后,您只需使用and即可推拉git pull。当您在公共分支上时,这将推送和拉取到 github,当您在私有分支上时,这将推送到您的 mydomain.com。

于 2013-04-02T22:11:17.410 回答