git如何处理二进制文件?

时间:2010-08-30 15:10:13

标签: git binaryfiles

  • 我是否必须设置一些东西来告诉git一些文件是否是二进制文件,就像svn一样?或者,git可以自动处理二进制数据吗?
  • 如果我更改二进制文件,以便我有100个二进制修订版,git会将所有100个版本单独存储在存储库中吗?
  • git的子模块是什么?

4 个答案:

答案 0 :(得分:51)

  1. Git通常可以自动检测二进制文件。
  2. 不,Git会尝试存储基于delta的变更集if it's less expensive to(并非总是如此)。
  3. 如果要在项目中引用其他Git存储库,则使用子模块。

答案 1 :(得分:20)

Git使用启发式方法来尝试确定文件是否为二进制文件。有关更多信息以及如何强制git将给定文件视为二进制文件,请参阅此article

有关子模块的精彩教程,请参阅herehere

答案 2 :(得分:11)

我基本上遇到了同样的问题:我想要git pickle文件,这是二进制文件,但git认为它们是文本。

我在Pro Git Book中找到了this chapter on Git Attributes。所以我通过使用以下行创建.gitattributes文件解决了我的问题:

*.pickle binary

答案 3 :(得分:4)

git add my-binary-file
git commit
git push

将添加您的二进制文件;它是自动的。

实际上,如果您有100个版本的文件,它将存储它(但已压缩)。

您可以使用子模块来引用其他存储库。