我看着一个看起来一团糟的合并标记。为了给你提供这种情况,我们可以这样做:
public void methodA() {
prepare();
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
}现在是合并(我使用SourceTree进行拉)。标记看起来是这样的:
<<<<<<<<< HEAD
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
============================
private void methodB() {
doOtherStuff();
>>>>>>>> 9832432984384398949873ab
}因此,拉出提交所做的是完全删除methodA并添加methodB。
但你注意到有些线条完全缺失了。
根据我对这个过程的理解,Git正在尝试所谓的自动合并,如果这一过程失败并在检测到的地方发生冲突,则用标记为“<<<*HEAD”++ '====‘+ after + '>>>* CommitID’之前的部分来表示完整的合并,并准备手动解决冲突。
那它为什么会遗漏一些台词。在我看来更像是虫子。
我使用2.6.2.windows.1.,所安装的git版本是Windows7。虽然最新版本是2.9,但我想知道git版本是否存在如此严重的合并问题?这不是我第一次经历这样的事情..。。
发布于 2016-06-24 12:17:28
在合并中,只标记包含冲突的更改。
Rev A中的变化和Rev B中的不同变化直接合并到。只有在同一地点的Rev A和Rev B中的更改才被标记为冲突。通知用户,文件中存在冲突,需要解决。
当您去解决冲突时,合并后的文件已经有来自Rev A和Rev B的独立更改,以及冲突部分的冲突标记。
https://stackoverflow.com/questions/38012397
复制相似问题