7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Git LFSで一度でもコミットしたファイルをtrackする方法

Last updated at Posted at 2021-05-25

背景

基本的に100MB以上のファイルは git push 時にエラーになってしまいます。
今回残念ながら130MBのファイルをアップロードしようとしてエラーになってしまいました。。。
そのときのエラーメッセージで Git LFS を使うように促されるわけですが、すでにコミットしてしまっているファイルを後から git lfs track しても物理ファイルは残ったままなので、やはりpush時にエラーになってしまいます。
いろいろ調査した結果、解決手段としては下記:

  • git reset --soft HEAD^ でファイルを追加する前の履歴まで戻す
    • gitは履歴にファイルが有る限りpushしようとしてしまいます。つまり git rm --cached file してもダメ
  • git lfs migrate import を使って後から物理ファイルをLFSポインターに変換する

今回は後者で解決しました。

$ git lfs migrate import --include="public/heavy.pdf" --everything

すると --include で指定したファイルは下記のようにLFSポインターで書き換えられます。

$ cat public/heavy.pdf
version https://git-lfs.github.com/spec/v1
oid sha256:fd73228fc4e238160a8f7da967b4834aa0b66c30731cdcb889e77c2a362805e3
size 138638207

これでpushすればOK!

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?