やりたいこと
例えば、UKをEUに取り込みたいとする。
EU/
|--- .git(dev)
UK/
|--- .git(dev)
↓↓↓
EU/
|--- .git(dev)
|--- UK/
【注意】
あくまでもローカルで管理しているリポジトリのみに使用すること。
これをやるとリモートリポジトリと整合性がとれなくなる。
手順
1. 取り込みを行うブランチを決めておく
git checkout dev
2. EU配下にUKを取り込むディレクトリを作成
cd EU
mkdir UK
3. EUに作成したディレクトリをコミット
# 空ディレクトリはコミットできないので空ファイルをUK配下に作ってコミット
touch UK/.anchor
git add -A UK
git commit -m 'UKリポジトリを取り込むディレクトリを作成'
4. UKリポジトリをリモートリポジトリとして追加
# EUのリポジトリルートに移動
cd EU
# UKリポジトリのパスを指定(絶対パスやURLでもOK、相対パスの場合はEUリポジトリルートから見たパス)
git remote add ../GS repoUK
5. ディレクトリを指定してUKを取り込む
# EUのリポジトリルートに移動
cd EU
# UKリポジトリのdevブランチを取り込む(ブランチ指定は必須)
git fetch repoUK
git merge --allow-unrelated-histories -X subtree=UK repoUK/dev