Git - 每个分支的不同远程

标签 git github merge git-branch git-merge

我不确定如何正确地提出这个问题,但我会尽力而为 - 我绝不是 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 publicgit 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 (mydomaingithub)并将每个分支设置为单独推送到它们来使用它。它可能看起来像这样:

如果您还没有添加 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 pushgit pull 进行推送和 pull 。当您在公共(public)分支上时,这将推送和 pull 到 github 远程,当您在私有(private)分支上时,这将推送和 pull 到您的 mydomain.com 远程。

关于Git - 每个分支的不同远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775183/

相关文章:

git - Emacs 可以忽略 git 存储文件的时间戳变化吗?

git - 无法同步当前分支不跟踪远程分支

c# - NuGet 发布的 github 托管项目的目录结构

python - 合并两个不同长度的python pandas数据帧,但将所有行保留在输出数据帧中

c++ - 从 C 文件调用 C++ 函数

windows - 当我的 Git 存储库在 Linux 上时如何在 Windows IDE 上工作(使用 VMPlayer)

git - 使用单个 git 存储库而不是子模块来管理不同的代码库

git - "git filter-branch"成功用于更改提交者/作者,但更改不会反射(reflect)在 github 上

Git 如何将原始仓库的主分支 merge 到 fork 仓库的主分支?

python-3.x - 如何删除具有相同值的行?合并具有相同前缀的列