Как сделать сложное слияние Git репозитория?
Я хотел бы объединить следующие репозитории GitHub:
- aosm / objc4
- Яблочно-FOSS-Mirror / objc4
- https://github.com/bavarious/objc4
- https://github.com/chenniaoc/objc4-551.1
- j4n0 / objc4-532
- https://github.com/Jeswang/objc4-532
- macmade / OBJC4-437.1-время выполнения
- с открытым исходным кодом, яблоко / objc4
- https://github.com/robertvojta/objc4
При этом я хотел бы сделать так, чтобы это слияние выглядело как https://github.com/robertvojta/objc4 с точки зрения того, как организованы его коммиты, релизы, теги и т. Д. Возможно ли это, и если да, то как бы я это сделал? Я предполагаю, что не смогу объединить все репозитории одновременно; в каком порядке я должен объединить репозитории; и как бы я выполнил каждое слияние таким образом, чтобы в конце я смог получить желаемые результаты?
PS:
Итак, я начал свою попытку слияния всех этих репозиториев, но похоже на тот https://github.com/macmade/OBJC4-437.1-Runtime, который является первым репозиторием, и я думаю, что мне придется слиться с https://github.com/RandomDSdevel/objc4, моей целью репозиторий, из-за того, что этот исходный репозиторий содержит файлы из самой ранней версии Objective-C, доступной на GitHub, может быть немного сложным для объединения. Видите ли, https://github.com/macmade/OBJC4-437.1-Runtime содержит то, что вы получите, если перейдете на веб-сайт Apple с открытым исходным кодом, посмотрите в столбце "OS X" на "10,6", щелкнули треугольник раскрытия, чтобы показать дочерние элементы этого родительского элемента., нажал на любую из ссылок в разделе подсписка от '10.6.2 'до '10.6.7, прокрутил вниз, чтобы найти' objc4-437.1 ', скачал исходный код, пошел туда, где ты сохранил эту загрузку удалил все, кроме папки "runtime", извлек ее содержимое туда, где она находилась, удалил (теперь пустую) папку "runtime" и превратил полученную папку в репозиторий GitHub.
В любом случае, ни один из других репозиториев GitHub, содержащих исходный код Objective-C, не подвергался такому виду лоботомии, а это значит, что мне нужно сделать так, чтобы я мог объединить содержимое моей ветки (RandomDSdevel's) objc4 'objc4' который я сделал для отслеживания https://github.com/macmade/OBJC4-437.1-Runtime в папку 'runtime' в моей ветке 'master' репозитория (RandomDSdevel's) objc4. До сих пор я нашел несколько различных стратегий, которые я мог бы использовать для объединения этой ветки 'macmade' моего репозитория 'RandomDSdevel's' objc4 ' в ветку' master 'этого репозитория. Большинство из них описаны в этом вопросе о переполнении стека и его ответах. В первом комментарии к этому вопросу также упоминается, что в содержании обсуждения этого вопроса о переполнении стека могут быть найдены другие решения, и один из ответов на этот вопрос относится к человеку, который первоначально задал вопрос, к "самому крутому слиянию" Линуса Торвальдса.
Какую из этих стратегий я должен использовать, чтобы объединить мое (RandomDSdevel) зеркало https://github.com/macmade/OBJC4-437.1-Runtime с моей (RandomDSdevel's) 'objc4' веткой 'master' репозитория так, чтобы содержимое первого находилось в его 'runtime' папка? Может ли кто-нибудь провести меня через это, шаг за шагом, пожалуйста? После этого, тем не менее, я могу, вероятно, просто объединить все остальные репозитории, в которых я первоначально упомянул, поверх слияния, в котором я хочу помочь, от наименьшей к лучшей версии, как первоначально предлагал Мудассир Разви в своем первоначальном ответе на этот вопрос.
1 ответ
Так или иначе! Вы можете оформить заказ RandomDSdevel/robertvojta_objc4
, add
все остальные репозитории как remotes
, fetch
от всех них (порядок не имеет значения) и merge
все, что вам нужно, где вам нужно!
Более разумным способом было бы add one repo as remote
, fetch
, merge
, add another
а также repeat cycle
чтобы избежать путаницы!
Update-1
- Если вы хотите только содержание:
а. Создать Git-репозиторий
б. В вашем новом пустом репо добавьте каждый из ваших репозиториев в папки и зафиксируйте по одному за раз. - Если вы хотите их истории:
а. Создайте пустой репо, добавьте все свои репозитории в виде субмодулей.
б. Тогда передайте это.