我正在尝试将master分支合并到original分支中。他们是分叉的树枝。
我只是跑
git checkout original
git merge master正如我所预料的那样,这导致了许多冲突。
我打开了一个包含冲突的文件,当我为这个文件运行git diff (使用vim-fugitive)时,出现了三个拆分;一个是fetch(original),一个是original,第三个是merge(original)。
我不明白为什么git diff有三个版本,或者它们到底是什么版本。我在树枝或原木上找不到它们。我应该如何利用它们来解决冲突呢?
发布于 2018-08-09 11:13:08
有三个版本,因为你正在做一个3路合并.它们是基本版本、本地版本和远程版本。标准的git术语是基本的,我们的和他们的;您也可以使用:1:文件名、:2:文件名和:3:文件名blob引用来获得它们。
实际上,有四个:也有工作树文件,其中合并的结果。diff操作将显示合并结果和合并的两面,即本地(第2阶段)和远程(第3阶段)。
你的3路合并算法的目标是将基础和我们之间的变化和基与基之间的变化结合起来。git mergetool命令是用来帮助您的。我建议为此目的使用kdiff3 (即安装它,配置git以使用它,然后git mergetool将酌情启动它)。
https://stackoverflow.com/questions/51764997
复制相似问题