为什么 3 路合并比 2 路合并更有优势?

2024-01-02

维基百科 http://en.wikipedia.org/wiki/Merge_%28revision_control%29#Three-way_merge表示 3 路合并比 2 路合并更不容易出错,并且通常不需要用户干预。为什么会这样呢?

3 路合并成功而 2 路合并失败的示例会很有帮助。


假设您和您的朋友都签出了一个文件,并对它进行了一些更改。您在开头删除了一行,您的朋友在末尾添加了一行。然后他提交了他的文件,您需要将他的更改合并到您的副本中。

如果您正在进行双向合并(换句话说,差异),该工具可以比较两个文件,并看到第一行和最后一行不同。但它怎么知道如何处理这些差异呢?合并版本应该包含第一行吗?它应该包括最后一行吗?

通过三向合并,它可以比较两个文件,但也可以将每个文件与原始副本进行比较(在您更改文件之前)。因此它可以看到您删除了第一行,并且您的朋友添加了最后一行。它可以使用该信息来生成合并版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 3 路合并比 2 路合并更有优势? 的相关文章

  • 交互式变基后,本地 Git 分支已偏离原始分支

    我有一个本地分行 CRM ayrshireminis 其中有一些我已推送到原点的提交 origin CRM ayrshireminis 这个分支是从创建的develop大约一周前的一个分支 其他合作者已经在该分支上完成了一周的工作 我想做的
  • 为什么版本控制系统缺乏 Visual Source Safe 的共享功能?您使用并认为哪些源代码控制值得尝试?

    我们正在寻找一种版本控制系统来改变我们当前的源安全系统 我们将它与 Visual Studio 一起使用 到目前为止 我们已经失败了 主要原因是我们看到的所有替代方案都不支持 VSS 的一项或多项功能 尤其是我们广泛使用的一项 文件共享 那
  • 在 Pandas 中,如何从基于另一个数据框的数据框中删除行?

    我有 2 个数据框 一个名为 USERS 另一个名为 EXCLUDE 他们都有一个名为 电子邮件 的字段 基本上 我想删除 USERS 中包含 EXCLUDE 中包含电子邮件的每一行 我该怎么做 您可以使用boolean indexing
  • Maven 中不同配置文件的不同 SCM

    在我的项目中 我们必须使用 maben build number 插件来构造 jar 的最终名称 为此我们使用 SCN 的修订版 因此我们需要 SCM 但是我们在无法直接访问的受控环境和本地测试环境上有两个 SVN 因此对于我们的 poup
  • 将bitbucket发布到数字海洋

    我本质上是试图使用 bitbucket 来理解 git 的概念 我一直在通过修改本地帐户和 bitbucket 帐户之间的文件来练习版本控制 事实证明这很有帮助 现在我正在尝试弄清楚如何将文件从 bitbucket 或者我猜是 GitHub
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 从 C# 中的子上下文菜单项访问时,源代码控制为空

    当他们从上下文菜单条中单击子菜单项 颜色 gt 红色 时 我试图更改按钮的颜色 该代码附加到用户定义的按钮数量 为了弄清楚他们试图更改哪个按钮 我尝试从子项目转到源代码管理 如下所示 发送者 gt 所有者工具条 gt 所有者菜单 gt 源代
  • 如何使用合并或替换来更新 R 中具有多列的表

    我想做一些与这个问题非常相似的事情 如何使用 merge 更新 R 中的表 https stackoverflow com questions 3190118 how to use merge to update a table in r
  • 使用 XSLT 合并 2 个具有匹配“id”属性的 XML 文件

    当存在匹配的 id 属性时 我想使用 XSLT 合并 2 个 XML 文件 myFile1 xml 这是第一个输入文件
  • 合并两个ActiveRecord数组并按created_at排序

    books Book find all articles Articles find all 通过阅读来自http guides rubyonrails org layouts and rendering html http guides
  • 如何存储和计算版本控制历史记录?

    考虑这个简单的 python 代码 它演示了一个非常简单的字典版本控制设计 def build current history current for action key value in history assert action in
  • 在 Subversion 中,如何取消劫持文件?

    目前 我的团队有一组不应该受到版本控制的文件 但它们确实受到了版本控制 我想从我们的 subversion 存储库中删除它们 并允许每个人保留他们的本地版本 实现这一目标的最佳方法是什么 删除文件会将它们从存储库以及每个人的本地文件系统中删
  • 本地提交推送到中央服务器

    在工作中 我们使用 perforce 并被鼓励定期对其进行承诺 我对此很满意 然而 我想运行像 Mercurial 这样的东西 这样我就可以在本地提交正在进行的工作并且不一定编译 运行的东西 然后从中定期提交到中央 perforce 服务器
  • 如何在data.table中使用OR条件连接表

    在 data table 中是否可以使用 OR 条件连接表 例如 library data table X lt data table x c a b c d e f y c 1 1 2 2 3 3 z c 10 11 12 13 14 1
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • 提高 Pandas 合并性能

    正如其他帖子所建议的那样 我特别没有 Pandas Merge 的性能问题 但我有一个类 其中有很多方法 可以对数据集进行大量合并 该类有大约 10 个 group by 和大约 15 个 merge 虽然 groupby 相当快 但在类的
  • 相当于 svnblame/gitblame 的clearcase?

    在 Rational Software 的 Clearcase 中 有一个cleartool子命令或其他命令行工具 相当于blameSVN 中的命令还是 git 中的命令 最接近的一个是cleartool annotate https ww
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • R:行数不相等的列绑定

    我有两个数据集 它们每个都有变量 ID Block 和 RT 反应时间 我想合并 列绑定这两个集合 以便我拥有一个包含变量的数据集 ID 块 RT1 RT2 问题是两个集合中的行数不相等 此外 ID 和块号匹配也很重要 缺失值应替换为 NA
  • 如何解决git中文件重命名文件夹冲突?

    我有以下问题 我有两个分支 Branch1 和 Branch2 的一些共同提交 A Branch1 是一个公共分支 位于服务器上 Branch2 是本地分支 在 Branch1 中我更改了文件 BAD folder somefile txt

随机推荐

  • 在 Maven 存储库中找不到项目

    我有一个带有子模块的 Maven 模块 父级的相关部分是这样的
  • T-SQL 函数获取存储字符的 ASCII 值

    我正在使用 T SQL 块来获取存储在数据库列中的 ascii 字符转储 我知道在 Oracle 中使用 DUMP 函数可以轻松完成此操作 我不熟悉 SQL Server sytax 但我正在使用类似的东西 SET NOCOUNT ON C
  • 来自柏林噪声的每顶点法线?

    我正在 Opengl 几何着色器中生成地形 但在计算照明法线时遇到问题 我使用几何着色器中实现的柏林噪声函数动态生成每帧地形 因为这 我需要一种有效的方法来计算每个顶点的法线基于噪声函数 没有纹理或任何东西 我可以采用 2 条边的叉积来获取
  • 与简单的用户 ID 检查相比,声明/角色/策略授权的技术优势是什么?

    我使用 Identity Server 并通过策略和角色保护端点 这些反映在我分发给客户端的访问令牌中 今天 我收到建议 不要保护这样的方法 Authorize Policy Elevated HttpGet metadata public
  • CUDA 中的嵌套内核

    CUDA 目前不允许嵌套内核 具体来说 我有以下问题 我有N个M维数据 为了处理 N 个数据点中的每一个 需要按顺序运行三个内核 由于不允许嵌套内核 因此我无法创建调用三个内核的内核 因此 我必须串行处理每个数据点 一种解决方案是编写一个包
  • C++ 中短路 `operator<<` 输出

    我有一些代码散布着这样的结构 if debug Output lt lt f1 lt lt f1 lt lt n 现在我想做的是编写一个流类Debug我可以这样写 Debug lt lt f1 lt lt f1 lt lt n 如果设置了某
  • 简单的 TextView.setText 导致 40% CPU 使用率

    运行我的应用程序会导致我的手机 CPU 使用率达到约 40 final String position String format 02d 02d 02d time getHours time getMinutes time getSeco
  • Excel VBA 中的定时警报

    我在 Excel 2003 中制作了一个日历来跟踪任务和类似项目 我需要做的是通过 VBA 设置计时器 像这样的事情 run in x secs timetowait function to exec 有没有办法在 excel vba 中做
  • 如何用字符串替换缩写?

    我正在创建一个 XSL 文件 该文件将从 XML 文件中提取有关在我所在区域被拖走的汽车的信息 并按汽车被拖走的日期按升序对其进行排序 我需要在转换后的文件中显示拖车日期 车牌和汽车颜色 我的问题是每辆车的颜色都有缩写 我想要颜色的全名而不
  • 在NancyFx中获取url参数

    我正在使用 NancyFx 构建 Web API 但从 URL 获取参数时遇到一些问题 我需要向 API 发送请求 consumptions hourly from 1402012800000 tags 171 1342 5D to 140
  • 多个卷到单个目标目录?

    有没有办法从主机挂载多个卷以形成单个目标挂载点 有点像这样 docker run name ubuntu bash rm interactive tty volume media Large videos videos volume med
  • 将 GIT 与在多个位置具有目录的项目一起使用

    我正在尝试将 PHP MySQL Web 应用程序 基于 CodeIgniter 2 01 框架构建 移动到 GIT 存储库 问题是为了增加安全性 我实施了分离应用程序部分 应用程序和系统文件夹 和 Web 文件 index php 图像
  • 使用非虚拟析构函数扩展基类是否危险?

    在下面的代码中 class A class B public A class C public A int x int main int argc char argv A b new B A c new C in both cases on
  • Log4j2/JPA/Hibernate 日志记录不起作用

    我无法使用 log4j2 生成休眠日志消息 它仅记录信息和警告 另一方面 HikariCP 与此配置完美配合 这是 pom xml
  • vim 中的自适应 Tab 键

    我碰巧处理的代码中 某些模块使用制表符进行缩进 而其他模块则使用空格 许多文本编辑器 例如 Np 具有某种自适应制表符功能 如果前一行 或代码块 使用空格或制表符 视情况而定 则使用空格进行缩进 我还没有在 vim 中看到过这样的东西 有没
  • 如何在 MariaDB 容器中运行 cron?

    我想在 MariaDB 容器中包含一个基于最新映像的 cron 任务mariadb 但我坚持这个 我尝试了很多方法但没有成功 因为我无法同时启动 MariaDB 和 Cron 这是我实际的 dockerfile FROM mariadb 1
  • 在 Backbone 视图渲染上动态设置 className

    我有一个 Backbone 视图 其中 className 使用函数动态设置 app Views ItemRequestView Backbone View extend tagName tr className function var
  • 如何在React Native中从heic格式获取jpg图像

    我从图库中挑选照片并上传到服务器 但几天后我注意到有些照片的扩展名为 heic 并且浏览器无法渲染这些图像 1 有没有办法从上传的heic中提取照片 2 如何在React Native中从这种格式获取jpeg 您可以借助这个很棒的库在服务器
  • Android:在运行时更改矩形的颜色

    我有一个LinearLayout我有一个自定义视图 public class myView extends View Rect rects new Rect 30 30 80 80 Canvas myCanvas Override publ
  • 为什么 3 路合并比 2 路合并更有优势?

    维基百科 http en wikipedia org wiki Merge 28revision control 29 Three way merge表示 3 路合并比 2 路合并更不容易出错 并且通常不需要用户干预 为什么会这样呢 3 路