git
リポジトリの軽量化をしたい。
今あるファイルを消すだけではリポジトリサイズは減らない。
自由にしていいリポジトリであれば、gitの履歴を改変する、LFS化するなどする。
git-lfs をインストールする
- https://git-lfs.github.com/
- macの場合
リポジトリ軽量化
過去コミットに残っている巨大ファイルを削除して軽量化する。
git filter-branch を使う方法は、履歴が多いとかなり遅いため実用的じゃなかった。
BFGを使うことにした。
- https://repo1.maven.org/maven2/com/madgag/bfg/1.14.0/bfg-1.14.0.jar からjar実行ファイルをダウンロードする
- bareリポジトリをクローン
- BFGで巨大ファイルを削除
- BFGでコミットはきれいになった状態だがまだ実体は残っているので、きれいにする
- 事前にバックアップをとってからpushする(
--mirror
でcloneしているため、リモートのリポジトリのすべてのrefsがアップデートされるためバックアップ推奨)
LFSの設定
git lfs migrate で Git-LFS 移行したときのメモ
BFGでもLFSに変換できるようだ (https://support.atlassian.com/bitbucket-cloud/docs/use-bfg-to-migrate-a-repo-to-git-lfs/)
今はBFGよりgit-lfs-migrateを使ったほうがいいようなのでそうする
作業全体