Добавить более новое Git-репо к более старому, чтобы объединить обе истории - PullRequest
3 голосов
/ 30 апреля 2019

У меня есть два связанных git-репозитория на GitHub, которые действительно должны быть едины.Как объединить оба проекта в один проект таким образом, чтобы он удовлетворял следующему контексту:

  • Каждый репо в настоящее время имеет только главную ветвь.
  • A - это старое репо, Bявляется более новым репо.
  • A является каноническим репо (то есть: репо A имеет имя, которое я в конечном счете хочу, чтобы этот инструмент вызывал, поэтому я хочу, чтобы вся дальнейшая работа, после добавления B к A,должно быть сделано в репо A).
  • После того, как B был добавлен в A, A должен существовать, B должен быть удален.
  • Я не хочу помещать одно репо в качестве подкаталогадругой, я хочу объединить эти два репо, как если бы они были одним репо все время.
  • Я хочу, чтобы это изменение в истории git A было постоянным, чтобы люди не должны были брать ссылки, но вместо этогопросто клонируйте обновленный репозиторий А и получите все как положено.
  • Между этими двумя репозиториями есть 3 одинаковых файла: .gitignore, readme.md и package.json.

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Вот простой способ сделать это:

Из вашего местного репозитория A

git remote add b https://github.com/your-username/your-b-repo.git
git fetch b
git checkout -b b-master b/master
git rebase master
# fix conflicts if any
git checkout master
git merge b-master
git branch -d b-master

Объяснение

  1. Добавьте ваш вторичный удаленный репозиторий с именем b в локальный первичный репозиторий
  2. Извлечь все из него
  3. Создайте новую локальную ветвь, которая соответствует b / master с именем b-master и оформите к ней
  4. Поместите все, что вы делали в хранилище B, после всего, что вы делали в хранилище A, используя команду rebase
    1. Исправить конфликты во время перебазировки
  5. Оформите вашу master ветку (на А)
  6. объединить ветку master (A) с веткой b-master (B)
  7. Удалить бесполезную b-master ветку
1 голос
/ 30 апреля 2019

Вы можете:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...