🍣
モノレポから歴史を救い出す
課題
大きくなったモノレポから特定のファイル群を歴史とともに他のリポジトリに移管したい。巨大なリポジトリをすべてsubtree add
するのは歴史が大きくなりすぎるので、避けたい。
TL;DR
git-filter-repo
を使う
git-filter-repoをインストールする
pip install git-filter-repo
Monorepoをcloneする
git clone ...
git-filter-repoで特定のディレクトリの歴史以外を捨てる
git-filter-repo --path <歴史を残したいディレクトリ> --path <複数指定可能> --subdirectory-filter <指定したディレクトリがルートになる>
後はsubtreeで他のリポジトリに追加したりする
git subtree add --prefix=<このディレクトリ以下に展開> git@github.com:.....git <branch>
Ref
Discussion