背景
小菜:“大鸟我最近碰到一件怪事”
大鸟:“哦?说来听听。”
小菜:“事情是这样的…”
旁白:
如下图,小菜基于 master 分支的提交 C1 迁出了一条新分支 dev,并添加了 feature.js(D1),这是一个新功能;
然后他切换到 master 分支,发现此时同事有一个新提交 C2。小菜很自信,他直接把自己的 dev 分支合了过来(E1),然后发布到了测试环境。
第二天,QA 提了 bug,小菜排查后发现是由于昨天添加了 feature.js 的原因,所以小菜只好把昨天的提交(E1) revert 了(E2);
之后小菜切换到自己的 dev 分支修复 fuature.js 的问题。他添加了一个 fix.js 并 import 了 feature.js。
这次小菜长了心眼,在合并 dev 分支后(F),他在本地自测了一下。但奇怪的是,他发现合并后自己的 feature.js 文件消失了!
大鸟:“我知道了,要解决这个问题,我们得先了解一下分支合并的一些相关知识…”