在 VS Code 中解决代码冲突的两种方法

boyanx3个月前技术教程14

常在河边走,哪有不湿鞋。天天写代码,必定遭遇 Git 合并冲突。

遇到冲突不用慌,VS Code 来帮忙。

VS Code 默认会在一个视图中使用不同颜色标识冲突区域。绿色表示当前分支(Current Change)的代码,蓝色表示其他分支(Incoming Change)的代码。

如果你想保留当前分支的代码,可以点击【Accept Current Change】按钮。

如果想保留其他分支的代码,点击【Accept Incoming Change】按钮。

如果想同时保留两个分支的改动,点击【Accept Both Changes】按钮。

点击【Compare Changes】按钮,可以在并排视图中比较代码。注意,对比视图是只读的,只可远观,不可亵玩。

如果代码冲突数量很多,使用默认视图修改不够方便。如果你仔细看,会在右下角发现一个【Resolve in Merge Editor】按钮。点击它,会打开 VS Code 的三向合并编辑器(3-way merge editor),这是 2022 年 6 月发布的 VS Code v1.69 的新增特性。

三向合并编辑器的布局如下所示,左上角是其他分支的改动,右上角是当前分支的改动,下方是合并结果。

点击【Accept Current】按钮选择当前分支的改动。

如果你反悔了,点击【Remove Current】按钮撤销当前分支的改动。

其他分支的改动操作类似,不再赘述。

合并编辑器有一个剩余冲突计数器,点击它可以跳转到下一个冲突位置。如果你的代码文件很长,这个功能很方便。随着冲突的解决,它的数字会越来越少,当数字变成 0 时,就不能跳转了。

全部代码冲突解决完成后,点击【Complete Merge】按钮。

此时,编辑器 Git 面板会显示一个【Continue】按钮和一个文本输入框。点击后,便会将刚才的代码合并提交至仓库。

相关文章

在 MySQL 中使用 TINYINT 类型进行比较查询时,需要注意的事项

最近在项目中在表中新增了两个字段,使用的TINYINT(1)定义布尔类型,并且未设置默认值,这个字段是后来新增,新增之后没有对以前的历史数据进行处理,于是在代码中比较的时候,使用了如下示例代码:Lis...

Python 事件驱动:观察者、发布 - 订阅模式的代码实现与场景对比

事件驱动编程是一种编程范式,程序的执行流程由事件的发生来决定。事件可以是用户的操作,如鼠标点击、键盘输入,也可以是系统发生的特定状况,像定时事件、网络数据到达等。在事件驱动编程里,程序会等待事件的触发...

VBA信息获取与处理:如何在多个工作表中查找某个给定值

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息...

MyBatis批量插入的3种方案对比,速度差10倍!

你还在用for循环做MyBatis批量插入? 本文通过真实案例+代码实测,对比三种批量插入方案的速度差异与实现原理。文末附实测数据截图,看完立省80%数据库操作时间!一、青铜方案:循环单条插入(性能灾...

Go协程与Async/Await对比分析

一、并发模型的核心差异Go的协程(goroutine)基于CSP模型:通过goroutine和channel实现通信顺序进程用户态轻量线程:协程栈初始为2KB(动态扩展),上下文切换开销极小隐式异步:...

宽温设计-40℃到70℃破解复杂场景,龙鼎源UHC-5000

宽温设计破解复杂场景的“万能适配器”3.1 宽温设计环境适应性:-40℃到70℃的生存考验宽温设计验证:在内蒙古某风电场(冬季-35℃)和沙特光伏电站(夏季机柜内部65℃)的极端环境中,UHC-500...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。