🚛
3GB超の Git リポジトリを Git LFS を有効にしつつ Bitbucket から GitHub に移行する
はじめに
サイズの大きなバイナリを多く管理する既存の Git リポジトリがある。
Bitbucket 上のサイズは 3GB で「2GB を超えたリポジトリはコミットができなくなる」という警告が出ている状態である(そうはいいつつコミットさせてくれる Bitbucket は優しい)
今回 GitHub に移行しつつ、ついでにサイズの大きなバイナリを Git LFS で管理するようにして、リポジトリの引っ越しをしたのでその記録をまとめる。
環境
まずは git-lfs をインストールする。環境は Ubutu 20.04 なので以下のコマンドでインストールする。
$ apt install git-lfs
余談だが Windows の Git の場合は、デフォルトで git-lfs が同梱されているようで、特に何もインストールせずに使えた。
$ git lfs version
git-lfs/2.13.1
マイグレーション
Bitbucket からクローンしてきたリポジトリで以下のコマンドを実行する。
$ git lfs migrate import --include="*.war,*.rpm,*.bin,*.gz" --everything
これで以下の処理をしてくれる。
- Git LFS を有効化
- 指定した拡張子のファイルを Git LFS で管理するように(過去未来共に)
- 過去のコミットの書き換え(タグやブランチも)
あとはこれを GitHub に git push すれば、Git LFS が有効になったリポジトリができる。
$ git remote set-url origin git@github.com:ORGANIZATION/REPOSITORY.git
$ git push origin --all
GitHub
オーガニゼーションの Settings -> Billing & Plans から Git LFS のデータ使用量を見ることができる。
push した直後は表示が全く変わらず焦ったが、20-30 分くらいしたら反映された。
GitHub は無償では 1GB が上限なので、3GB のリポジトリを履歴も含めて push すると、当然上限を超えてしまう。
GitHub から「Git LFS のサイズ上限を超えたので Git LFS を無効化したよ」という旨のメールが届くので、そうしたら上記の画面で支払いをしてデータ容量を追加すれば良い。
まとめ
-
git lfs migraion
で過去の履歴を含めて、 GIt LFS 対応にできて便利 - GitHub は Git LFS のデータ容量が無償で 1GB (2021-02 現在)だが、それを超えるサイズのリポジトリを push しても失敗はしない
- ただし、すぐに Git LFS が無効化されてしまうので、支払いをしてデータ容量を追加すること
Discussion