こんにちは。
諸般の事情で別々に管理されていたGitを統合する必要がありました。その手順を記録しておきます。
前提
下記のように2つのリポジトリがあり、BからAに向けて統合します。
- リポジトリ A repo_a
- リポジトリ B repo_b
それぞれ main
ブランチがあるとします。
下記のような手順で進めます。
- リポジトリAのリモートリポジトリとしてBを追加
- リポジトリAに統合用のブランチを作成し、Bからプル
- リポジトリAで統合用ブランチからマージ
手順
リポジトリAのリモートリポジトリとしてBを追加
$ git remote add repo_b git@github.com: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
参考