记录一次git合并

背景

我今天在向其他分支合并代码时,出现冲突,然后我就在gitLab网页上解决冲突。等我下午回头整理自己分支的时候,发现自己分支有其他分支的代码。这也是GitLab在merge代码时的一个操作:反向合并

模拟重现

  • A:自己提测分支,于明天要合并到master分支;
  • B:其他提测分支,于后天要合并到master分支;

由于测试环境正在测试B分支的功能,所以测试环境只能发B分支;现在我想验证A分支上临时添加的小功能,所以我就要把A分支合并B分支上,但出现冲突了,我在GitLab上直接解决冲突了。

GitLab的解决冲突的机制:会先将B合并到A分支,此时A分支把冲突解决了,再将把解决冲突后的A分支合并到B分支。

这个时候就出现问题了:
明天要上线的A分支,含有后天才上线B分支的代码!!!

解决办法:

首先,明确一个规则:A分支一定不能含有B分支的代码。
而在测试分支互相合并出现冲突后,不能直接解决冲突。因为,一但解决冲突,俩个测试分支都互相含有对方分支的代码;只要俩个分支上线时间不一致,就会违反上面的规则。

如何解决?
新建一个临时分支C,测试环境使用C分支来测试。以最先上线的分支A来创建分支C,然后B分支向C提代码,这样只有B分支有A分支代码,而A分支是干净的。

git冲突的原因

https://blog.csdn.net/themagickeyjianan/article/details/81540662

posted @ 2020-09-20 20:08  fourther  阅读(141)  评论(0编辑  收藏  举报