@[TOC]切记不要在gitLab上解决daily/dev的冲突,以及如何快速 revert Merge
原因分析:从gitLab新建一个分支(远程),想从vscode切换到该分支时,使用了第一种方案,vsCode切换到master,但是没有拉取最新的代码(本地master分支 版本落后),然后新建一个重名的分支,导致这两个重名分支后面自动关联时,版本不一致
从gitLab新建一个分支,想从vscode切换到该分支时,发现没有搜到远程的该分支origin/,解决方案目前有两种:
1、vsCode切换到master(本地),拉取最新的代码,然后新建一个重名的本地分支;相当于新建了两个重名分支,后面git会自动关联
2、使用fetch抓取所有分支,就可以搜到该远程分支,就可以从远程的该分支来创建本地分支 ——推荐用法
Merge到master的冲突,可以直接在gitLab上解决;
1、以daily为基准去解决冲突;使用最新的daily拉取副本分支,然后将我们的分支代码Merge到daily的副本,手动解决冲突,提交后,去gitLab上提MR;—— 适合解决复杂冲突,需要保存两者,甚至是保存两者之后需要修改的冲突;
2、以我们自己的分支为基准去解决冲突,使用我们自己的分支代码拉取副本分支,直接去gitLab上提交MR,有冲突直接在gitLab上解决即可;—— 更简单,适合解决简单明了的冲突;
均需要delete source Branch
1、在工作分支上找到错误的Merge记录(Merge daily into 当前分支),然后在该记录之前重新拉取一个中转分支;
2、若工作分支的这个错误的Merge记录的上面有其他的提交记录,需要cherry pick到新的分支;
3、然后通过比对工具(文件夹比较与合并,推荐App Beyong Compare),全量比对工作分支和中转分支,在差异文件中,将中转分支的代码 全量复制到工作分支上;—— 此时获取到相当于revert Merge 的变更;
4、然后在工作分支上将全部的变更提交(revert Merge);
5、最后将工作分支Merge到master;