87 git
git对二进制文件好吗?
如果我修改了很多未压缩的文件,并且许多压缩文件从未(或几乎从未)被修改过,那么git会处理得好吗?例如,如果我插入或删除中间并在末尾附近插入数据,它会注意到它与文本一样吗?
如果git对二进制文件不好,我可以考虑使用什么工具?
Jak*_*ski 41
除了其他答案.
您可以使用所谓的二进制diff格式将diff发送到二进制文件.它不是人类可读的,只有在您的存储库中有精确的原像时才能应用它,即没有任何模糊.
一个例子:
diff --git a/gitweb/git-favicon.png b/gitweb/git-favicon.png
index de637c0608090162a6ce6b51d5f9bfe512cf8bcf..aae35a70e70351fe6dcb3e905e2e388cf0cb0ac3 100
GIT binary patch
delta 85
zcmZ3&SUf?+pEJNG#Pt9J149GD|NsBH{?u>)*{Yr{jv*Y^lOtGJcy4sCvGS>LGzvuT
nGSco!%*slUXkjQ0+{(x>@rZKt$^5c~Kn)C@u6{1-oD!M<s|Fj6
delta 135
zcmXS3!Z<;to+rR3#Pt9J149GDe=s<ftM(tr<t*@sEM{Qf76xHPhFNnYfP!|OE{-7;
zjI0MY3OYE5upapO?DR{I1pyyR7cx(jY7y^{FfMCvb5IaiQM`NJfeQjFwttKJyJNq@
hveI=@x=fAo=hV3$-MIWu9%vGSr>mdKI;RB2CICA_GnfDX
Run Code Online (Sandbox Code Playgroud)您可以使用TEXTCONV gitattribute有git diff二进制文件或二进制文件的部分显示人类可读的差异.例如,对于*.jpg文件,它可能与EXIF信息不同,对于PDF文件,它们的文本表示(pdf2text或类似的东西)之间可能存在差异.
HTH.
ndi*_*dim 40
开箱即用,git可以轻松地将二进制文件添加到其索引中,并且还可以以有效的方式存储它们,除非您对大型不可压缩文件进行频繁更新.
当git需要生成差异和合并时,问题就开始了:git无法生成有意义的差异,或者以任何有意义的方式合并二进制文件.因此,涉及更改二进制文件的所有合并,rebase或cherrypicks将涉及您对该二进制文件进行手动冲突解决.
您需要确定二进制文件的更改是否足够罕见,您可以使用它们在涉及合并,rebase,cherrypicks的正常git工作流中引起的额外手动工作.
Joh*_*ibb 13
如果你有非常大的二进制文件,你可以使用git-annex将数据存储在存储库之外.查看:http://git-annex.branchable.com/
git 对二进制文件很好。但它不会像文本文件那样处理二进制文件。就像你想合并二进制文件一样。我的意思是,jpeg 上的差异永远不会给你任何回报。Git 与文本文件一起工作得很好,可能与其他二进制文件解决方案一样糟糕!
我不知道有任何工具试图存储用于版本控制的二进制文件差异,但值得注意的是Git即使对文本文件也不这样做.Git将文件存储为blob,并在需要时在它们之间进行区分.
如果您希望对Photoshop/Illustrator文档等版本进行版本控制,GridIron Flow可能会为您提供帮助.如果你试图让它们在机器之间保持同步,Dropbox或Rsync可以处理它,但它们不会进行智能差异化.
| 归档时间: |
|
| 查看次数: |
72707 次 |
| 最近记录: |