我在git repo中有一个“大”(5 mb)文本文件。如果我在最后一行添加一个字符并运行,git add我的.git文件夹的大小将增加约1 mb(我假设这是5 mb文件的压缩大小)。
每当我进行编辑和添加时,都会发生相同的情况。
如果我运行,git add -p file我会得到一个很好的差异,只有几个字节。但是无论如何,当我完全填充添加内容时,大对象文件就被存储了。
运行git gc --prune=now会删除较大的目标文件,并且一切似乎仍然可以正常进行。
但是在每次添加之后定期运行git gc并不是一个好选择,因为我在SD卡上以自动方式使用git,这样会使卡的写和删除兆字节用完。
所以,我的问题是
1)我是对的,这是git的行为吗?还是我误会了什么?
2)我可以避免这种情况,让git只保存差异吗?
我毫不犹豫地恢复了旧变更等方面的灵活性。无需分支或存储或其他会使git的生命复杂化的事情。
编辑 为了清楚起见,我的问题不是git保存整个文件一次。但是它存储了每次编辑的整个文件。如果我在每次字符编辑之间添加了10个字符并进行了添加和提交,则它将整个文件(以压缩形式)保存10次。
git ×1