いくつかのバイナリ ファイルを git に保存しなければならないという不幸な状況にありますが、
ただし、データをディスクに保存する方法を選択できます-Git(ビルドシステムのみが読み取る必要がある独自の形式)。
それほど重要だとは思わないので、詳細についてはあまり話したくありませんが、いくつかのコンテキストを示すために、これらは多くのアイコンファイルですが、同じ質問が多くの小さなサウンドファイルまたは 3d モデルにも当てはまります。
これらのファイルを 1 つの大きなイメージに変換することはビルド ステップであるため、イメージは任意の方法で git に保存できます。
- バイナリ圧縮(例:PNG(画像)、FLAC(音声))
- バイナリ非圧縮 (例: PPM (画像)、非圧縮-WAV (音声))
- バイナリ データの ASCII 表現 (例: MIME エンコード、XPM (画像))
一部のファイルがときどき変更されると仮定しましょう。そのため、ピクセルへの小さな変更ごとに新しいバイナリ BLOB を保存しないようにするとよいでしょう。
私は知りたいです:
- バイナリ ファイルが変更されるたびに (数バイトであっても)、まったく新しいバイナリ blob を格納するオプションはどれですか。
- git diff は圧縮されていないバイナリ データよりも優れていますか?
- ファイルの一部のみが定期的に変更されると仮定すると、大きなバイナリ ファイルへの小さな変更を git で効率的に処理できますか?
バイナリファイルの使用を完全に回避できないと仮定して、大きなgitリポジトリを回避するための最良のオプションは何ですか(バイナリファイルに対して編集が行われるため)、すべてのことを考慮しましたか?