1. ホーム
  2. git

[解決済み] Git lfs - "this exceeds GitHub's file size limit of 100.00 MB".

2022-03-02 13:53:28

質問

githubのファイルサイズ制限である100.00MBを超えるcsvファイルがあります。Git Large File Storage エクステンションを使おうとしています。

https://git-lfs.github.com/

LFSから-。 "Large file versioning- Version large files—even those as large as a couple GB in size—with Git."

気になるフォルダーに以下を適用してみました。

git lfs track "*.csv"

ところが、プッシュすると

remote: error: File Time-Delay-ftn/Raw-count-data-minor-roads1.csv is 445.93 MB; this exceeds GitHub's file size limit of 100.00 MB
remote: error: File Time-Delay-ftn/Raw-count-data-major-roads.csv is 295.42 MB; this exceeds GitHub's file size limit of 100.00 MB

当該フォルダを見ると

-rw-r-----   1 user  staff    42B 23 Oct 12:34 .gitattributes
-rw-r--r--   1 user  staff   1.3K 19 Oct 14:32 DfT_raw_major_manipulation.py
-rw-r--r--   1 user  staff   1.2K 16 Oct 15:08 DfT_raw_minor_manipulation.py
drwxr-xr-x  21 user  staff   714B 22 Oct 11:35 Driving/
-rwxr-xr-x@  1 user  staff   295M 19 Oct 14:47 Raw-count-data-major-roads1.csv*
-rwxr-xr-x@  1 user  staff   446M 16 Oct 14:52 Raw-count-data-minor-roads1.csv*

.gitattributesファイルをvimすると、lfsのセットアップが表示されます。

*.csv filter=lfs diff=lfs merge=lfs -text

何が間違っているのでしょうか?

アップデイト

クエリを実行すると

git lfs ls-files

何も返ってきません。これは、.csvフィルタが.gitattributesファイルにうまく適用されたにもかかわらず、csvファイルがlfsによってピックアップされないことを示しています。

どうすればいいですか?

既存のリポジトリに git-lfs 設定を追加するだけでは、大きなファイルを LFS サポートに遡及して変換することはできません。 それらの大きなファイルは履歴に残り、GitHub はあなたのプッシュを拒否します。

既存のコミットにgit-lfsを導入するためには、履歴を書き換える必要があります。 BFG レポクリーナーツールをお勧めします。 LFSサポート追加 最近です。

によって、CSVファイルの過去の使用状況を変換できるようにする必要があります。

$ java -jar ~/bfg-1.12.5.jar --convert-to-git-lfs '*.csv' --no-blob-protection