gitリポジトリに "大きな"(5メガバイト)テキストファイルがあります。 最後の行に文字を追加してgit add
を実行すると、.gitフォルダのサイズが約1 mb(私の5 MBファイルの圧縮サイズと見なします)に増加します。Gitはdiffの代わりに全体のファイルを保存するように見えますが、どうしたら回避できますか?
編集して追加するたびに同じことが起こります。
私がgit add -p file
を実行すると、わずか数バイトの良い差分が得られます。しかし、とにかく大きなオブジェクトファイルは、私が完全に追加するときに格納されます。
git gc --prune=now
を実行すると、大きなオブジェクトファイルが削除されますが、動作が期待どおりに機能しているようです。
しかし、定期的にgit gcを実行するのは良いオプションではありません。私はSDカードで自動的にgitを使用しています。このカードは、カードを消耗してメガバイトを削除します。
だから、私の質問(複数可)
1)私は、これはgitのの振る舞いである右のことを私はありますか?または私は何かを誤解するか?
2)これを避けてdiffを保存するだけですか?
古い変更を復元するなどの柔軟性を失うことは問題ありません。分岐やstashing、またはgitのために人生を複雑にする可能性がある他のものは必要ありません。
編集 私の問題は、gitがファイル全体を一度保存するのではないことです。しかし、それは各編集のためにファイル全体を保存します。各文字編集の間に追加とコミットを含む10文字を追加すると、ファイル全体が(圧縮形式で)10回保存されます。
マイト便利です:http://blog.deveo.com/storing-large-binary-files-in-git-repositories/ – Swift
ありがとう、私はそのリンクをssen持っているが、それは非常に大きいファイルを処理するためのより多くのようですそれらのサイズは問題です。または、削除されたファイルがまだgit.indexでスペースを取ってしまうという問題。しかし、これらのことは私には受け入れられます。 –