我看一下看起来搞砸了的合并标记.为了给你这种情况,让我们:
public void methodA() {
prepare();
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
现在进入合并(我使用SourceTree进行拉动).标记看起来像这样:
<<<<<<<<< HEAD
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
============================
private void methodB() {
doOtherStuff();
>>>>>>>> 9832432984384398949873ab
}
Run Code Online (Sandbox Code Playgroud)
所以拉取提交的作用是完全删除methodA并添加methodB.
但是你注意到有些线条完全缺失.
根据我对该过程的理解,Git正在尝试所谓的自动合并,如果这种情况失败并且检测到冲突,则完整合并由标记为"<<<*HEAD"+ +之前的部分表示==== '+ after +'>>>*CommitID'并准备手动冲突解决方案.
那么为什么它会遗漏一些线条呢.它看起来更像是我的错误.
我使用的是Windows7,安装的git版本是2.6.2.windows.1.虽然最新的版本是2.9,但我想知道是否有任何关于具有如此规模的合并问题的git版本的知识?这不是我第一次经历这样的事情......