我不确定如何正确地提出这个问题,但我会尽力而为 - 我绝不是 Git 爱好者,我知道如何使用基本命令但不是高级术语/功能。
我有一个从私有(private)服务器 git.mydomain.com
克隆的私有(private)存储库 myrepo
。我熟悉使用 git checkout -b mybranch
在同一存储库上分支代码的过程 - 但是我想分支到 GitHub 而不是我的私有(private)服务器,结果如下:
Repo Branch Remote Location (Purpose)
------------------------------------------------------------
myrepo --> private --> git.mydomain.com (Incremental work)
|
+------> public --> github.com (Public releases)
基本上我希望能够git checkout public
和git merge private
。
最佳答案
您可以使用以下命令设置不同的分支以将各个分支推送到不同的服务器:
从 Git 1.8.0 开始:
git branch --set-upstream-to origin/foo foo
注意:如果省略了最后一个foo
,它将选择当前分支。
从 Git 1.7.0 开始:
git branch --set-upstream foo origin/foo
在您的情况下,您可以通过添加两个 Remote (mydomain
和 github
)并将每个分支设置为单独推送到它们来使用它。它可能看起来像这样:
如果您还没有添加 Remote ,请确保添加:
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
和 git pull
进行推送和 pull 。当您在公共(public)分支上时,这将推送和 pull 到 github
远程,当您在私有(private)分支上时,这将推送和 pull 到您的 mydomain.com
远程。
关于Git - 每个分支的不同远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775183/