Gitlab上手指南(六)|如何利用vscode工具快速的解决代码冲突

简介: 相信很多用git的程序员对于git冲突都很恐惧。当你项目马上要上线,测试让你把主分支的代码合并一下,要做一个回归测试,然后你合并的时候,一堆冲突代码,直接让你头皮发麻。到底应该处理哪一个冲突,哪一段代码

相信很多用git的程序员对于git冲突都很恐惧。当你项目马上要上线,测试让你把主分支的代码合并一下,要做一个回归测试,然后你合并的时候,一堆冲突代码,直接让你头皮发麻。到底应该处理哪一个冲突,哪一段代码应该删除?哪一段代码不能删除呢?在你一通操作以后,发现竟然出了bug,然后上线延期。。。

首先我们来看看冲突时如何造成的

场景:如果有一个文件,你和另一个人同时修改某段代码的一部分,他把修改完的代码提交了以后,当你拉代码的时候,就会发现跟你的冲突了。

入图中所示:

上图中,提示我们READMD.me文件发生了冲突,需要我们手动解决,然后执行git add <冲突文件名> git rebase --continue即可。

那么出了这个问题应该如何解决呢?

我们借助vscode提示工具,可以看到

这里有四个选项

  • Accept Current Chagne 选择当前的修改
  • Accept Incoming Change 选择合并的修改
  • Accept Both Change 接受两者
  • Compare Chagne比较查看

这是只需要你自己查看一下你需要保留代码的哪一部分,然后选择不同的选项即可处理完毕这个冲突。不过在这之前,最好是找修改这个代码的人确认一下,他这个代码没有没有用,然后再决断需要留还是不留。

然后执行一下git add . && git rebase --continue,发现出现了下面的一幕:

完全不要慌张,这个是让你填写一个commit信息,默认会本地最后一次commit信息。那么这个如何去编辑呢?

其实这个是vim的操作模式,只需要执行下面几行命令即可搞定:

# 按i进入编辑模式
i

# 修改好commit信息
# 按esc退出编辑模式
esc

# 最后使用:wq保存并退出vim模式
:wq

到此为止,一个完整的冲突解决完毕。

如果你对vim命令实在是太陌生,不要慌,你修改完代码中的冲突部分以后,你可以在左侧的可视化工具栏里进行commit操作,效果和vim操作是一样的。

最后,谨记一点,当你修改冲突代码的时候,一定要看看这段冲突代码是谁造成的,冲突代码是不是线上代码?如果是线上代码千万不要删除,不然等你的代码一上线,bug直接让你奔溃。所以一定要跟相关的负责人去沟通一下。

相关文章
|
1月前
vscode提交代码
vscode提交代码
|
1月前
设置VSCode代码编辑器右侧的Minimap代码缩略图滚动条切换显示、隐藏的快捷键Alt+M
设置VSCode代码编辑器右侧的Minimap代码缩略图滚动条切换显示、隐藏的快捷键Alt+M
|
1月前
VSCode如何自动换行,右侧换行间距长度,隐藏右侧代码预览(Minimap代码缩略图滚动条),比对代码差异窗口也自动换行
VSCode如何自动换行,右侧换行间距长度,隐藏右侧代码预览(Minimap代码缩略图滚动条),比对代码差异窗口也自动换行
|
1月前
|
IDE C# 开发工具
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
一个开源轻量级的C#代码格式化工具(支持VS和VS Code)
|
24天前
|
数据安全/隐私保护
解决使用SourceTree下载GitLab服务器上的代码每次都需要输入密码问题
解决使用SourceTree下载GitLab服务器上的代码每次都需要输入密码问题
25 2
|
1月前
|
C++
VS code debug c代码 配置
VS code debug c代码 配置
16 0
|
1月前
|
jenkins 持续交付 API
上传gitlab代码后jenkins自动进行发布的配置
上传gitlab代码后jenkins自动进行发布的配置
26 1
|
1月前
|
jenkins 持续交付 开发工具
gitlab远程库代码版本回滚方法
gitlab远程库代码版本回滚方法
69 1
|
1月前
|
数据采集 Web App开发 JavaScript
vscode跟踪vue代码方法
vscode跟踪vue代码方法
19 0
|
1月前
|
API 开发工具 C++
【专栏:工具与技巧篇】使用代码编辑器(VS Code/Sublime Text)提升开发效率
【4月更文挑战第30天】在VS Code与Sublime Text两大流行代码编辑器中,开发者可借助其高效特性提升编程效率。VS Code拥有丰富的插件生态、内置Git集成、强大的调试工具、智能提示和多文件导航功能。Sublime Text则以其轻量级、快速响应、多光标编辑及自定义构建系统见长。学习编辑器的键盘快捷键、自定义配置、使用内置终端以及键绑定和宏,将助开发者进一步提高开发效率。选择适合自己的编辑器并不断适应新技术是提升开发工作流的关键。