【问题标题】:Git - Different Remote for each BranchGit - 每个分支的不同远程
【发布时间】:2013-03-24 09:37:21
【问题描述】:

我不确定如何正确提出这个问题,但我会尽力而为 - 我绝不是 Git 爱好者,我知道 如何 使用基本命令,但不知道高级术语/功能。

我有一个从私有服务器 git.mydomain.com 克隆的私有存储库 myrepo。我熟悉使用 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

【问题讨论】:

  • 当您准备好后,将该分支推送到不同的来源 (Github) 是否适合您的工作流程?

标签: git github merge git-branch git-merge


【解决方案1】:

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

从 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 pushgit pull 进行推拉。当您在公共分支上时,这将推送和拉取到 github,当您在私有分支上时,这将推送到您的 mydomain.com。

【讨论】:

  • @CraigWatson 很高兴为您提供帮助!
  • 在同样的场景下,是否可以告诉 git 选择性地将文件添加到公共分支?例如,如果我有私有文件夹 dist、src 和 README.md,而我只希望 dist 和 README.md 出现在 github 即公共仓库中,我该如何实现呢?
  • @SaifurRahmanMohsin 无论推送到哪个服务器,该分支都将具有相同的文件。如果您想在特定分支上拥有特定文件,则仅将这些文件提交到该分支。
猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 2018-02-12
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-15
相关资源
最近更新 更多