从两个单独的 GitHub 分支中提取未合并的更改

Pull unmerged changes from two separate GitHub forks

我知道 GitHub Flow is a good Git workflow that simplified the Git workflow. However, there is one case that it doesn't cover -- How to merge two different git repos from different users. Can the 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 项目有许多独立的分支。 None 这些存储库已合并回原始 go-imap 存储库。不管这种情况背后的原因是什么,我都试图将所有这些努力集中到一个存储库中,这样我的存储库就会包含所有有用的补丁

在这种情况下如何合并两个或多个仓库? 如果我需要从上面的另一个仓库中合并怎么办network graph

有很多方法可以从 github 上的不同分支获取代码。以下是我的做法:

  1. 克隆原始存储库。 git clone https://github.com/mxk/go-imap.git。这样做的原因是您希望您的 master 分支基于该存储库的 master 分支,这样您将继续获得通过拉取请求或其他方式对其进行的改进。
  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。这可能有点棘手,您可能必须根据更改的代码部分来解决合并冲突。

当然,如果你想在不是master的本地分支上工作,那也没关系,以上仍然适用。您可以随心所欲地管理您的分支机构。