我想这样,如果给定提交A,父母B和C,是否可以知道尝试合并是否导致最终用户的合并冲突,用户需要手动解决?
(编辑:我正在寻找一种不依赖于git工具链的程序化解决方案。例如,我是否可以在提交B和C的文件内容上运行特定的算法?)
答案 0 :(得分:1)
要回答您的直接问题,不,Git不会存储有关合并提交是否具有手动解决冲突的元数据。除非重新尝试合并,否则您无法在事后恢复该信息。您是否正确,是否会发生冲突取决于您传递给git merge
的确切选项,因此您需要提示用户提供这些选项。
我忽略了用例。 github.com/src-d/go-git库似乎无法选择特定文件历史记录的提交。
对于该用例,检测合并冲突是不够的。
假设您有一个文件
A
B
C
D
E
F
在分支1上,您将B
更改为b
。
在分支2上,您将E
更改为e
。
合并两个分支时,您不会遇到合并冲突,但您将获得以前不存在的文件版本。
我认为你应该声明合并提交与文件的历史相关,当且仅当没有父提交时,该文件具有相同的内容。