Git LFS での管理を停止する

create
2020年11月20日
update
2020年11月20日

動機😣

Git LFS について

サイズが数百キロバイト程度の画像ファイルを Git LFS で管理することは、メリットよりもデメリットの方が大きくなる可能性が高いのでやめたほうがよいでしょう。

特に、画像ファイルが少ないはじめのうちは問題がないようでも、 画像ファイルが増えるにつれて clone や checkout の速度が遅くなるなどの問題が発生する可能性があるので注意が必要です。

という話があるので、小さい画像ファイルでも Git LFS 管理してたのをやめることにした。

Table 1. 環境
App Version

git

2.20.1

git-lfs

2.7.1

Git LFS 管理をやめる手順🏃

  1. Git LFS 管理対象のファイルを確認

    git lfs ls-files
  2. Git LFS アンインストール

    Example 1. Git LFS アンインストールのコマンド例
    git lfs untrack '*.png' '*.jpg' '*.jpeg'  (1)
    git rm --cached path/to/file1 path/to/file2  (2)
    git lfs uninstall  (3)
    1 Git LFS の追跡パターンを( .gitattributes から)削除
    2 現在の Git 管理対象からバイナリファイルを削除
    3 Git LFSHook や設定をアンインストール
    履歴からも消して綺麗にする場合

    git rm の代わりに下記コマンドを実行。
    全履歴を書き換えて対象ファイルを無かったコトにするため、リモートリポジトリには強制上書き( git push -f )が必要になる。

    git filter-branch --force --index-filter \
      "git rm --cached --ignore-unmatch path/to/file1 path/to/file2" \
      --prune-empty --tag-name-filter cat -- --all
  3. Git LFS アンインストール後のファイルをコミットし直す

    git add .
    git commit

以上で Git LFS 管理の停止完了😎。