代码之家  ›  专栏  ›  技术社区  ›  Salahuddin

将分支Y合并到X后,创建了三个版本的文件:fetch(X)、merge(X)和X

  •  0
  • Salahuddin  · 技术社区  · 6 年前

    我正在尝试合并 master 分支到 original 分支。它们是分叉的树枝。

    我只是跑

    git checkout original
    git merge master
    

    正如我所料,这导致了许多冲突。

    我打开了一个包含冲突的文件,当我运行 git diff 对于此文件(使用 vim-fugitive ),出现了三个分裂;其中一个称为 fetch(original) ,其中一个调用 起初的 ,第三个被称为 merge(original) .

    我不明白为什么有三个版本 差异比较 或者他们到底是什么。我在git分支或日志中找不到它们。我应该如何利用它们来解决冲突?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jan Hudec    6 年前

    有三个版本,因为您正在进行三向合并。它们是基本版本、本地版本和远程版本。标准git术语是 基础 , 我们的 他们的 ;你也可以用 :1: 菲拉南 , :2: 文件名 :3: 文件名 blob引用。

    实际上,有四个:合并结果所在的还有工作树文件。一个 差异 操作将显示合并结果和合并的两面,本地(阶段2)和远程(阶段3)。

    您使用三向合并算法的目的是将base和our之间的更改与base和their之间的更改合并起来。这个 git mergetool 有命令可以帮助你。我建议使用 kdiff3 为此目的(即安装它,配置git使用它,然后 git合并工具 将根据需要启动它)。