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直接让你奔溃。所以一定要跟相关的负责人去沟通一下。

相关文章
|
3月前
|
运维 Java Devops
阿里云云效操作报错合集之在进行GitLab代码分支迁移时遇到报错,一般是什么原因
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
1月前
|
Dart
Flutter笔记:手动配置VSCode中Dart代码自动格式化
Flutter笔记:手动配置VSCode中Dart代码自动格式化
112 5
|
1月前
|
Java 数据安全/隐私保护
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
这篇文章介绍了如何在VSCode中将代码提交到Gitee远程服务器,并提供了解决每次提交都需要输入密码问题的方法。
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
|
1月前
|
JavaScript 前端开发 开发者
【颠覆你的前端世界!】VSCode + ESLint + Prettier:一键拯救Vue代码于水深火热之中,打造极致编程体验之旅!
【8月更文挑战第9天】随着前端技术的发展,保持代码规范一致至关重要。本文介绍如何在VSCode中利用ESLint和Prettier检查并格式化Vue.js代码。ESLint检测代码错误,Prettier保证风格统一。首先需安装VSCode插件及Node.js包,然后配置ESLint和Prettier选项。在VSCode设置中启用保存时自动修复与格式化功能。配置完成后,VSCode将自动应用规则,提升编码效率和代码质量。
191 1
|
1月前
|
存储 Ubuntu jenkins
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
CI/CD 工具比较:Jenkins、GitLab CI、Buildbot、Drone 和 Concourse
67 0
|
1月前
|
人工智能 自然语言处理 IDE
通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具(二)
通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具
85 0
|
1月前
|
IDE Linux 开发工具
通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具
通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具
119 0
|
3月前
|
持续交付 开发工具 git
阿里云云效产品使用问题之在云效代码域中gitlab使用docker安装的,迁移时遇到“获取企业信息失败”,是什么原因
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
3月前
|
JSON Ubuntu JavaScript
工具分享:VsCode注释神器,koro1FileHeader
工具分享:VsCode注释神器,koro1FileHeader
104 3