4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoodStaffAdvent Calendar 2017

Day 2

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

Posted at

やりたいこと

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

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?