是否有可能确定在提交父母的情况下是否发生合并冲突?

时间:2018-02-25 11:22:33

标签: git

我想这样,如果给定提交A,父母B和C,是否可以知道尝试合并是否导致最终用户的合并冲突,用户需要手动解决?

(编辑:我正在寻找一种不依赖于git工具链的程序化解决方案。例如,我是否可以在提交B和C的文件内容上运行特定的算法?)

1 个答案:

答案 0 :(得分:1)

要回答您的直接问题,不,Git不会存储有关合并提交是否具有手动解决冲突的元数据。除非重新尝试合并,否则您无法在事后恢复该信息。您是否正确,是否会发生冲突取决于您传递给git merge的确切选项,因此您需要提示用户提供这些选项。

  

我忽略了用例。 github.com/src-d/go-git库似乎无法选择特定文件历史记录的提交。

对于该用例,检测合并冲突是不够的。

假设您有一个文件

A
B
C
D
E
F

在分支1上,您将B更改为b

在分支2上,您将E更改为e

合并两个分支时,您不会遇到合并冲突,但您将获得以前不存在的文件版本。

我认为你应该声明合并提交与文件的历史相关,当且仅当没有父提交时,该文件具有相同的内容。