Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 二进制文件的版本控制_Git_Diff_Binary Data_Mergetool_Diff3 - Fatal编程技术网

Git 二进制文件的版本控制

Git 二进制文件的版本控制,git,diff,binary-data,mergetool,diff3,Git,Diff,Binary Data,Mergetool,Diff3,我正在编写一个程序,它将使用自己的二进制格式来存储数据 我希望能够有某种形式的版本控制,至少两个不同的人应该能够对一个文件进行更改,然后合并这些更改 由于git似乎是一个非常常见和非常强大的版本控制系统,我想知道是否可以使用它。我只了解git的基本知识(pull-add-commit-push),但我知道它有更高级的特性。我想了解我是否可以实现一些基本功能并免费获得所有高级功能 因此,用例是每个项目将由一个单独的二进制文件组成,git必须能够使用它 我一直在搜索,了解到我必须编写一个自定义合并工

我正在编写一个程序,它将使用自己的二进制格式来存储数据

我希望能够有某种形式的版本控制,至少两个不同的人应该能够对一个文件进行更改,然后合并这些更改

由于git似乎是一个非常常见和非常强大的版本控制系统,我想知道是否可以使用它。我只了解git的基本知识(pull-add-commit-push),但我知道它有更高级的特性。我想了解我是否可以实现一些基本功能并免费获得所有高级功能

因此,用例是每个项目将由一个单独的二进制文件组成,git必须能够使用它

我一直在搜索,了解到我必须编写一个自定义合并工具?我的理解正确吗

我还了解到,三方合并是由diff3程序完成的,或者至少git嵌入了一些it功能。我需要写一个自定义版本吗?甚至可以将它与git一起使用吗?是否有必要重新编译git

git还将提交存储为更改,以节省空间。它使用diff吗?有可能替换它吗?git是否需要重新编译?
我还需要实现其他类型的功能吗?
我最初的计划是为项目使用单个文件,但每个项目都由独立的子项目组成,这些子项目将独立合并。通过将项目存储为每个子项目的不同文件,我会得到什么

关于diff、diff3和mergetool必须符合的接口,是否有一些好的文档?这些可以用哪种语言书写

我很困惑,因为每个人似乎都对从版本控制中删除二进制文件感兴趣,而且显然没有人想在它们上使用git。这是个坏主意吗?我觉得合并在某种程度上有意义的任何类型的数据都应该进行版本控制

因此,用例是每个项目将由一个单独的二进制文件组成,git必须能够使用它

有用于处理二进制文件的第三方工具


但每个项目都由独立的子项目组成

在git中,有用于此目的的子模块和子树(&subtree)


关于diff、diff3和mergetool必须符合的接口,是否有一些好的文档

这些可以用哪种语言书写

读出来,这里有对diff2和diff3算法的引用

因此,用例是每个项目将由一个单独的二进制文件组成,git必须能够使用它

有用于处理二进制文件的第三方工具


但每个项目都由独立的子项目组成

在git中,有用于此目的的子模块和子树(&subtree)


关于diff、diff3和mergetool必须符合的接口,是否有一些好的文档

这些可以用哪种语言书写

读出来,这里有对diff2和diff3算法的引用

git还将提交存储为更改,以节省空间。
”这不是真的。Git将每个文件的全部内容存储为单独的blob,并为每个blob计算一个哈希值以进行快速比较。@nishanths:True,但它也会压缩其数据,因此它实际上不会存储每个文件每个修订版的全部内容。“
Git还将提交作为更改存储以节省空间。
”事实并非如此。Git将每个文件的全部内容存储为单独的blob,并为每个blob计算一个哈希值以进行快速比较。@nishanths:True,但它也会压缩其数据,所以它实际上并没有存储每个文件的每个版本的全部内容。关于第1部分:a我在第一篇文章Git中试图解释大文件存储正是我不想要的。这是项目的唯一文件,也是我要合并的文件。关于第2部分:子模块必须是不同的文件吗?正如我所说的,我更喜欢在git中使用一个文件存储大型文件是一种不好的做法,因此#1是可选的,但u应该使用它,因为这是一种好的做法#2-子模块有一个文件,该文件设置了origin+文件夹,但与代码的其余部分处于相同的repo中关于第3部分:感谢有用的链接,但我的问题仍然是:是否可以使用另一个算法来生成与所提出的4个不同的差异?它必须用C写吗?人们需要重新编译git吗?关于第1部分:我在第一篇文章git大文件存储中试图解释,这正是我不想要的。这是项目的唯一文件,也是我要合并的文件。关于第2部分:子模块必须是不同的文件吗?正如我所说的,我更喜欢在git中使用一个文件存储大型文件是一种不好的做法,因此#1是可选的,但u应该使用它,因为这是一种好的做法#2-子模块有一个文件,该文件设置了origin+文件夹,但与代码的其余部分处于相同的repo中关于第3部分:感谢有用的链接,但我的问题仍然是:是否可以使用另一个算法来生成与所提出的4个不同的差异?它必须用C写吗?是否需要重新编译git?