- 2020-11-04 (Wed) 20:10
- 一般
GitLab のドキュメントにあった方法でやってみた: https://docs.gitlab.com/ee/topics/git/lfs/migrate_to_git_lfs.html
まず,BFG を取ってくる.java で実装されているので jar を落としてきて準備完了.こんな便利な道具を作ってくださった作者に感謝.
あとはおよそドキュメントの流れに従って作業:- とりあえず,--mirror つけて git clone する:git clone --mirror https://username@servername/gitlab/foo/bar.git
- BFGで指定のファイルを履歴をさかのぼって LFS 化する(対象ファイルを含むコミットを差し替えたりしてくれる):java -jar bfg.jar --convert-to-git-lfs "*.mp4" --no-blob-protection bar.git
- 落としてきた bar.git ディレクトリに移って,差し替えられて要らなくなったコミットなどを消してしまう: cd bar.git; git reflog expire --expire=now --all && git gc --prune=now --aggressive
- そのまま git lfs インストール:git lfs install
- GitLabの設定でリポジトリの master をプロテクトしてるなら解除する
- 強制 push する:git push --force
- リポジトリのプロテクトを必要ならまた入れる
ドキュメントだとこの後にゴニョゴニョあるけど,.gitattributes とかは BFG が既に入れていたので新たに git clone する分には気にしなくて良さげ.
ということで,これでリポジトリ自体は小さくなった.LFS が大きくなったけど.
- Newer: ことはじめ