git:比较二进制文件

时间:2015-03-11 03:47:21

标签: git binary

我需要一些帮助,git如何处理推送和拉出的二进制文件?由于我有2个二进制文件,我不想覆盖它们。我想得到他们的分歧。这可能吗?怎么会这样?

2 个答案:

答案 0 :(得分:2)

二进制文件的数量和大小并不重要。您应该对未生成的控制资产进行版本控制。对于真正的大文件(通常是未压缩的视频等),您可能想要使用其他东西,但为了管理精灵表,图像,小型音频剪辑,PDF文件等内容,git可以正常使用一些注意事项。

  1. 正常的文字差异无用。 Git有一个attribute system,允许你使用自定义差异,以便它可能。 Github在他们的网站上添加了image diffing之类的内容,以便您可以看到图像之间的差异。

  2. 当git将对象包装在其数据库中时,它们是增量压缩的。这意味着即使你有两个1GB的文件,一旦你打包存储库(就像你推送时自动完成的那样),整个存储库大小很可能明显小于2GB。

  3. 除此之外,我认为没有任何问题。您仍然可以跟踪二进制资产的修订以及良好的提交日志,这可能是一件有用的事情。

答案 1 :(得分:0)

Git会将二进制文件的处理方式与处理文本文件的方式相同。但正如this excellent blog指出的那样,出于很多原因,您应该避免将二进制文件添加到存储库中。首先,在二进制文件上执行diff会给你一个相当无意义的结果。如果diff完全干净,那么你就会知道你的本地副本和repo是相同的。但如果差异显示变化,您可能无法弄清楚变化代表什么。

此外,二进制文件往往很大,并且在repo中包含太多二进制文件会使其难以克隆。除此之外,如果你想从你的仓库中删除一个二进制文件,它可能会有点工作。