Как сделать сложное слияние Git репозитория?

Я хотел бы объединить следующие репозитории GitHub:

При этом я хотел бы сделать так, чтобы это слияние выглядело как 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

  1. Если вы хотите только содержание:
    а. Создать Git-репозиторий
    б. В вашем новом пустом репо добавьте каждый из ваших репозиториев в папки и зафиксируйте по одному за раз.

  2. Если вы хотите их истории:
    а. Создайте пустой репо, добавьте все свои репозитории в виде субмодулей.
    б. Тогда передайте это.
Другие вопросы по тегам