【问题标题】:Merging selective lines of code using Git?使用 Git 合并选择性的代码行?
【发布时间】:2010-10-06 23:28:15
【问题描述】:

我想强制 git 总是 使用(某种)3 路冲突解决方案进行合并。此外,我想做到能够选择单行。

目前我正在合并两个分支。但是,如果可能的话,我想知道如何在合并多个分支时执行此任务。

【问题讨论】:

    标签: git merge lines-of-code


    【解决方案1】:

    Git 默认尝试进行 3 路合并(recursive 策略用于 2 个头,octopus 策略用于 3 个以上头)。

    如果您想在手动合并时查看三向分辨率选项,请尝试将 merge.conflictstyle 配置选项设置为 diff3

    (有关该选项的详细信息,请参阅git-merge man page 的配置部分。)

    【讨论】:

      【解决方案2】:

      博文“Five advanced Git merge techniques”确实提供了有关 diff3 设置的更多详细信息:

      使用 git config --global merge.conflictstyle diff3 解决 diff3 冲突。
      diff3 冲突样式在新的||||||| 标记和======= 标记之间增加了一个额外的部分,表示:

      • 该部分的原始内容,
      • 上面的更改和
      • 他们的(被合并的分支)在下面发生了变化。

      即使没有 diff 工具,命令 git show 也可以提供帮助:

      当您在合并中时,您可以使用特殊的:N: 语法(其中N 是一个数字)来自动选择一个合并父级。

      • 1 选择公共基础提交(较低版本),
      • 2 选择您的版本(“mine”),然后
      • 3 选择他们的版本(更高版本)。

      所以git show :3:foobar.txt 显示了foobar.txt 的上游版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-16
        • 2015-04-28
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 2016-08-12
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多