git如何确定特定合并是否存在冲突以及冲突是什么?
我的猜测会是这样的:如果合并的两个提交有一个共同的父提交,并且如果他们都改变了父级的X行,那就是冲突.
使我的理解复杂化的是:
任何人都可以解释这是如何工作的,或者指向一个链接吗?
Sim*_*ter 22
基本上,使用git,每个合并都是冲突,它会为您提供一个索引,其中包含每个文件的三个版本,每个分支和基础的版本.在此索引上,运行各种解析器,可以为每个单独的文件决定如何解决此问题.
第一阶段是一个简单的解析器,它处理诸如未更改文件之类的事情,一个分支已经修改了文件而另一个没有修改文件的情况,或者两个分支包含相同的新版本文件的情况.
之后,它的插件会查看其余的情况.有一个插件可以通过识别一个分支中的各个更改(如差异)并尝试将这些更改应用到另一个分支来处理文本文件,如果不起作用则返回放置冲突标记.此时您可以轻松地挂钩自己的合并工具,例如,您可以编写一个知道如何在不违反格式良好的情况下合并XML文件的工具,或者提供允许交互式编辑和备用的图形用户界面的工具. - 侧视图(例如,kdiff3就是这样).
所以冲突的呈现实际上是插件使用的问题; 文本文件的默认插件将使用与CVS相同的样式,因为人们和工具都习惯使用它,并且冲突标记在几乎所有编程语言中都是已知的语法错误.
| 归档时间: |
|
| 查看次数: |
6124 次 |
| 最近记录: |