Git 如何处理二进制文件?

  • 我是否必须做一些事情来告诉 Git 某些文件是否是二进制的(比如 Subversion) ?或者,Git 可以自动处理二进制数据吗?
  • 如果我更改二进制文件,以便我有100个二进制版本,git 会将所有100个版本分别存储在存储库中吗?
  • Git 的子模块是什么?
63369 次浏览
git add my-binary-file
git commit
git push

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

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

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

  1. Git 通常可以自动检测二进制文件。
  2. 不,Git 将尝试存储基于 delta 的变更集 如果不用花那么多钱(并非总是如此)。
  3. 如果希望引用项目中的其他 Git 存储库,则使用子模块。

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

我在 Pro Git Book 里找到了 本章介绍 Git 属性。因此,我通过创建一个 .gitattributes文件来解决我的问题:

*.pickle binary

问题在于. gitignore

下列路径被. gitignore 文件中的一个忽略: XXX/YYYY/Bin1 _ 0x1d _ 0x0d. bin

如果您真的想要添加它们,可以使用-f。

Git add-f XXX/YYYY/*

或者

Git add-f XXX/YYYY/Bin1 _ 0x1d _ 0x0d. bin