git - 使用 git : custom diff for specific files 进行数据版本控制

标签 git version-control binary-diff

所以,我想研究 git 对某些二进制或文本树数据结构的版本跟踪的适用性。问题是我希望 diff 逻辑完全自定义,为数据结构模式量身定制。

假设有问题的文件是某个 json 对象,我想要 json 文件的自定义差异 所以如果我的版本 A 是这样的:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': ready } }

我应用以下更改:

{ a: 'yes' , b: { 'X': 'unavailable' , 'Y': done } }

所以我的 diff 会很聪明地发现只有项目 1变了。默认情况下 diff,如果其他人对键 a 中的项目 [0] 进行了更改,那么这将 产生冲突,需要手动 merge 。自定义差异旨在 为特定文件类型和内容自定义差异逻辑。

对于二进制文件,也可能适用一些略有不同的内容。

这道题的目的是看有没有:

  • 当前 git 支持这种定制的方法
  • 支持此定制的 git 开发项目或分支
  • 其他一些更适合此目的的工具

谢谢!

编辑 我找到了this article ,我认为它提供了一个非常广泛的我想知道的事情的范围。这也可能是一个迹象,表明目前还没有解决这个问题的好办法。

最佳答案

您可以 create custom diff view for binary files (“比较二进制文件”部分)类似于 Word 文档。但这仅对查看差异有用,对 merge 没有用。

我不知道有什么可以帮助你的。

关于git - 使用 git : custom diff for specific files 进行数据版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154110/

相关文章:

git - 使用 git 管理生产网站?

command-line-tool - 任何工作的二进制差异工具都实现 GDIFF(通用差异格式,而不是图形文件差异)?

java - 图像的差异/补丁

linux - 为什么 branch checkout 在 Windows 上这么慢,而在 Linux 上这么快?

git - 第一次提交应该是什么?

git - 如何解决所有有利于刚刚 pop 的存储的 merge 冲突?

git - 如何使用git管理一个代码库但有不同的环境

c++ - 最小化调试信息的大小以在远程位置进行测试

Git fetch 卡在 git-upload-pack 上

django - 修改模型后如何更新已部署的 django-app 的数据库(postgresql)?