はじめに
- Git repository の履歴を保持したまま複数の repository を1つにまとめる作業をした
- 自身の作業ログ扱いだが履歴として残しておく
Git repository の統合
- repo1, repo2 を repo にまとめる
.
├── repo
| └ .git
├── repo1
| └ .git
└── repo2
└ .git
となっているのを
.
└── repo
└ .git
└ repo1
└ repo2
に変更する
### 手順
- repo 内に repo1 ディレクトリを作成、何かしらのファイルを作成しておく
- 今回作成したファイルは
.gitkeep
とした
- 今回作成したファイルは
- remote に移行元を追加、fetch しておく
-
git merge --allow-unrelated-histories -X
で merge する
cd repo
git co -b import-repo1
mkdir repo1
touch repo1/.gitkeep
git remote add import-repo1 git@github.com:mziyut/repo1.git
git fetch import-repo1
git merge --allow-unrelated-histories -X subtree=repo1 import-repo1/master