Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

コミット履歴を引き継ぎつつリポジトリを1つにまとめる方法

More than 3 years have passed since last update.

やりたいこと

例えば、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

6. ブランチが複数ある場合は1~5の手順をブランチを切り替えて繰り返す

参考URL

ya_arai
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away