简介
有些比较大的特性,修改会比较多,范围涉及较大,冲突的概率很高。怎么样安全地合入代码?

上面的1.3.8themeAndlanguage是目标分支;language是添加了多语言功能,几乎每个页面都有修改,冲突是大概率事件。
方案1:复制备份
- 找到本地的代码所在,压缩一个zip包作为备份

-
合并,解决冲突,如果一切顺利,那就好。如果感觉凌乱了,那就直接删除文件夹,双击zip,再放一个出来就是。一切又回到原点,可以再来一次。
-
这个方案类似游戏里的存档,可以反复尝试,直到通关为止。
-
git也是要靠一些隐藏文件来记录文件变化的。打zip的时候,这些隐藏的git文件也一并存档了,所以可以安全地回到原点。


方案2:临时本地分支
我们现在要操作的是把language分支合并到1.3.8themeAndlanguage分支;如果直接合入,很可能会带来大量冲突,如果处理不好,就悲剧了。所以,准备用一个临时本地分支作为过渡,(类似缓存),如果成功就合入。如果失败,就删除临时本地分支,再来一次。
- 切换到language分支。
不用奇怪,没有搞错。虽然目标是把language分支合入到1.3.8themeAndlanguage分支。但是,在实际的操作中,却是相反的,是把目标的1.3.8themeAndlanguage分支进行反向合入

- 以language分支为范本,创建临时本地分支。这里就命名为“language临时本地分支”

- 把目标分支1.3.8themeAndlanguage反向合入临时本地分支“language临时本地分支”。

意料之中会有冲突。让人放心的是,这时候的冲突在临时本地分支上,目标分支不受影响。
-
按部就班解决冲突。如果一切顺利,那么就走下一步。如果乱套了,那么就删除临时本地分支,将123再来一次。
-
切换到目标分支,将临时本地分支合入目标分支。由于冲突在第4步已经解决,这里就会很顺利。然后把目标分支同步到远程就可以了。

网友评论