关于github:如何进行复杂的Git存储库合并?

How to Do a Complicated Git Repository Merger?

我想合并以下Github存储库:

  • AOSM/OBJC4标准
  • 苹果FOSS镜子/OBJC4
  • BAVARY/OBJC4型
  • 辰尼亚克/OBJC4-551.1
  • J4N0/OBJC4-532型
  • 杰斯旺/OBJC4-532
  • macmade/objc4-437.1-运行时
  • 开源苹果/objc4
  • 罗伯特沃伊塔/OBJC4

在这样做的过程中,我想让这次合并看起来像罗伯特沃伊塔/objc4,就其提交、发布、标签等的组织方式而言。这可能吗?如果可能,我该怎么做?我假设我不能一次将所有的存储库合并在一起;那么,我应该按照什么顺序合并所讨论的存储库;我应该如何执行每次合并,以便最终获得所需的结果?


P. S.:

好吧,我已经开始尝试合并所有这些存储库了,但是看起来Macmade/objc4-437.1-runtime是第一个存储库,我认为我必须合并到我的目标存储库randomdsddevel/objc4中,因为这个源存储库包含Githu上最早版本的objective-c文件B,合并可能有点困难。你看,macmade/objc4-437.1-runtime包含了如果你去苹果的开源网站,在"os x"栏下查找"10.6",点击"披露三角形"显示这个父项的子项,点击"10.6.2"到"10.6.7"子列表部分的任何链接,向下滚动找到"objc4-437.1",道指。卸载源代码,转到保存此下载的任何位置,删除除"运行时"文件夹以外的所有内容,将其内容提取到其所在的任何位置,删除(现在为空)的"运行时"文件夹,并将生成的文件夹放入Github存储库。

无论如何,其他包含Objective-C源代码的Github存储库都没有经历过这种lobotomy,这意味着我需要进行它,以便我可以合并(randomdsddevel的)"objc4"存储库的一个分支的内容,我创建它来跟踪macmade的"objc4-437.1-runtime"存储库到我(rando)的"runtime"文件夹中。MDSDevel的"objc4"存储库的"master"分支。到目前为止,我已经找到了几种不同的策略,可以用来将我的(randomdsddevel's)"objc4"存储库的"macmade"分支合并到这个存储库的"master"分支中。其中大部分在这个堆栈溢出问题及其答案中进行了描述。该问题的第一条评论还提到,在围绕这个堆栈溢出问题的讨论内容中可能会找到其他解决方案,并且该问题的答案之一是最初提出该问题的人引用了Linus Torvalds的"有史以来最酷的合并"。

我应该使用这些策略中的哪一个将Macmade的"objc4-437.1-runtime"存储库的(randomdsddevel的)镜像合并到我的(randomdsddevel的)"objc4"存储库的"master"分支中,以便前者的内容最终出现在后者的"runtime"文件夹中?有人能带我一步一步走过这个吗?不过,在那之后,我可能只需要合并我最初提到的所有其他存储库,在合并的基础上,我希望得到帮助,从最小到最大的版本,正如mudassir razvi最初在他对这个问题的原始答案中建议的那样。


无论如何!您可以从所有存储库(顺序无关紧要)中签出RandomDSdevel/robertvojta_objc4add所有其他存储库,如remotesfetch,以及merge任何您需要的,无论您需要的地方!

一个更明智的方法是对add one repo as remotefetchmergeadd anotherrepeat cycle,以避免混淆!

更新-1

  • 如果您只想要内容:a.创建Git存储库在新的空repo中,将每个存储库添加到文件夹中,并一次提交一个。
  • 如果你想要他们的历史:A.创建一个空的repo,将所有存储库添加为子模块。B.然后参考这个。