问题如图:
分析:
1.项目分支:master和fcarloan_branch_V1.0.4,一个是主分支,一个是“电销分支”
2.现在需要新建一个解决“is_rightnow_bill”问题的分支,我在本地checkout -b 一个新分支,如上(1.0.8)
3.git pull origin fcarloan_branch_v1.0.8之后,报错,Conflict失败,我分析,是因为我从“V1.0.4”切换过去的,新建的分支,所以会报错,而线上的"V1.0.8"是从master基础上新建的,master其实很新了。
解决方案:“git merge --abort”命令,将刚刚来下的分支的冲突,解决掉。
实验:
1.执行:git branch -D fcarloan_branch_V1.0.8 -- 删除v1.0.8分支
2.执行:git pull origin master -- 将master拉取到最新
3.执行: git checkout -b fcarloan_branch_V1.0.8 -- 本地新建 V1.0.8分支
4.执行: git pull origin fcarloan_branch_V1.0.8 (拉取成功,已经没有了冲突)
小结:
1.问题原因在于我新建“V1.0.8”分支的时候,我是从"V1.0.4"的基础切过去的,然而远程的“V1.0.8”则是在最新的“master”基础上新建的,于是乎,冲突很多,是必然。
2.思考这种场景会很多,如何规避。两个方法:
(1)新建分支的时候,先切到master,pull最新的master,之后新建本地分支。
(2)每次有别人上线的时候,把master和自己的代码合并,每次解决的冲突会很少,不至于最后一次的时候,冲突很多,而且比较久远,合并出错的概率无疑大大增加。