从两个单独的GitHub for

时间:2016-03-05 14:50:31

标签: git github version-control merge git-remote

我知道GitHub Flow是一个很好的Git工作流,简化了Git workflow。但是,有一种情况是它没有涵盖 - 如何合并来自不同用户的两个不同的git repos。 GitHub Flow可以提供任何帮助吗,或者我必须在命令行上完全恢复某些东西?

即,GitHub Flow假设人们会相互合作。我的问题是,如果他们不这样做,在这种情况下我应该怎么做才能合并两个或更多的回购。我正在谈论的回购是:

https://github.com/jasonparekh/go-imap
https://github.com/dinhviethoa/go-imap/

https://github.com/jasonparekh/go-imap/network,我们可以看到它们在不同的分支上,甚至在不同的基础上。即,github go-imap项目有许多单独的分叉。这些存储库中没有一个已合并回原始的go-imap存储库。无论这种情况背后的原因是什么,我都试图将所有这些努力集中到一个存储库中,以便我的所有有用的补丁包含

在这种情况下如何合并两个或更多个回购?如果我需要合并上述network graph中的其他回购,该怎么办?

1 个答案:

答案 0 :(得分:0)

有很多方法可以在github上从不同的fork中获取代码。我就是这样做的:

  1. 克隆原始存储库。 git clone https://github.com/mxk/go-imap.git。原因是您希望将主分支基于该存储库的主分支,因此您将继续通过拉取请求或其他方式获得对其进行的改进。
  2. 使用git remote add jasonparekh https://github.com/jasonparekh/go-imap.git添加您想要的任何叉子。对需要代码的其他存储库重复此步骤。
  3. 您的本地存储库有一个与mxk / master同步的主分支。确保您获取所有遥控器:git fetch --all。此时,您可以从其他存储库开始挑选您想要的东西:git cherry-pick abc123。或者,您可以从远程存储库合并整个分支:git merge jasonparekh/v1。这可能有点棘手,您可能必须根据代码的哪些部分更改来解决合并冲突。
  4. 当然,如果你想在一个非主人的本地分支上工作,那很好,以上所有内容仍然适用。您可以随意管理您的分支机构。