別々のリポジトリで管理されていたGitを統合する


こんにちは。

諸般の事情で別々に管理されていたGitを統合する必要がありました。その手順を記録しておきます。

前提

下記のように2つのリポジトリがあり、BからAに向けて統合します。

  • リポジトリ A repo_a
  • リポジトリ B repo_b

それぞれ main ブランチがあるとします。

下記のような手順で進めます。

  1. リポジトリAのリモートリポジトリとしてBを追加
  2. リポジトリAに統合用のブランチを作成し、Bからプル
  3. リポジトリAで統合用ブランチからマージ

手順

リポジトリAのリモートリポジトリとしてBを追加

$ git remote add repo_b [email protected]:yousan/repo_will_be_migrated_b.git

リポジトリAに統合用のブランチを作成し、B/mainからプル

$ git checkout -b migrate_branch
$ git pull --no-rebase --allow-unrelated-histories repo_b main

リポジトリAで統合用ブランチからマージ(実務ではPRにすると良いかも)

$ git checkout main && git merge migrate_branch

リポジトリをやり直す

動作試験の際に過去の履歴を抜きにして作り直したいことがありました。リポジトリを作り直すのも一つですが、main ブランチを別名に置き換え、新たにイチからブランチを作り直してテストを行いました。

$ git branch -m main main_old && git checkout --orphan main

参考