git如何处理二进制文件?

  • 如果一些文件是二进制的,就像svn一样,我必须设置一些东西来告诉git吗? 或者,git只能自动处理二进制数据?
  • 如果我更改二进制文件,所以我有100个二进制版本,将git只存储所有100个版本单独存储库中?
  • 什么是与git子模块?
  1. Git通常可以自动检测二进制文件。
  2. 不,Git会尝试存储基于增量的变更集( 如果它不是那么昂贵 )。
  3. 如果你想在你的项目中引用其他的Git仓库,可以使用子模块。

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

有关子模块的好教程,请看这里和这里 。

我基本上有同样的问题:我想git pickle文件,这是二进制文件,但git认为他们是文本。

我在Pro Git Book中find了关于Git属性的这一章 。 所以我通过这一行创build一个.gitattributes文件来解决我的问题:

 *.pickle binary 
 git add my-binary-file git commit git push 

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

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

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

问题是与.gitignore

以下path将被一个.gitignore文件忽略:XXX / YYYY / Bin1_0x1d_0x0d.bin

如果你真的想添加它们,请使用-f。

git add -f XXX / YYYY / *

要么

git add -f XXX / YYYY / Bin1_0x1d_0x0d.bin