Git实战技巧-比较不同分支之间的差异和代码的改动

1、企业场景

播仔即将结束在传智公司的开发工作,跳槽到黑马公司。项目经理考虑到播仔即将离职,只分配了一个简单的账户密码登录功能,而其他方式的登录功能让小黑去开发了。
项目经理为了保障播仔在离职前能完成开发工作,开始催促播仔工作进度:

播仔在找到小黑开发的代码分支后,开始合并代码:

此时:出现代码冲突问题

播仔懵了,怎么代码冲突了呢?

2、问题分析

为什么播仔在合并代码时,会出现代码冲突呢?

两位程序员(播仔、小黑)在各自分支下开发的功能,会涉及到一些相同的类。两位程序员都有针对相同的类中代码进行修改


在合并时,由于相同的类中代码有差异化,所以出现代码冲突

3、解决思路

3.1)使用Idea工具解决:

  1. 对比不同分支代码的差异化
  2. 把不同分支中有效代码进行保留,并合并成最终代码
  3. 向Git提交合并后的代码

3.2)使用Git命令行解决:

  1. 明确合并时哪些文件发生冲突
  2. 查看冲突文件内容,分析冲突代码
  3. 修改冲突文件(合并代码)
  4. 提交修改后的冲突文件
  5. 推送到Git远程仓库

4、动手实践

4.1)使用Idea工具解决

对比不同分支代码的差异化

  • 选择有代码冲突的类后,进行Merge(合并)



把不同分支中有效代码进行保留,并合并成最终代码

  • 在不同分支上,选择要保留的代码到Result(最终代码)



合并完成后的代码:

向Git提交合并后的代码

4.2)使用Git命令行解决

明确合并时哪些文件发生冲突 (当前分支为dev1)

  • 执行命令:git merge 分支名 有冲突时会提示哪些文件有冲突
  • 代码冲突:会停留在MERGING状态


查看冲突文件内容,分析冲突代码

  • 执行命令:cat 冲突文件


修改冲突文件(合并代码)

  • 执行命令:vim 冲突文件

通过vi编辑器,删除冲突文件中不需的内容后:

提交修改后的冲突文件

  • 执行命令:git add 修改后的冲突文件 先添加到暂存区
  • 执行命令:git commit -m '消息' 再提交到本地Git


推送到Git远程仓库

  • 执行命令:git push

5、问题小结

在团队开发中,经常会遇到代码冲突的问题。
原因:多人对相同的类进行了开发维护,造成代码存在差异化
解决方案:

  1. 使用工具或git命令对比不同分支代码的差异化
  2. 把不同分支中有效代码进行保留,合并成最终代码
  3. 提交合并后的最终代码

Git实战技巧-比较不同分支之间的差异和代码的改动相关推荐

  1. Git实战技巧-多人协作开发出现代码冲突,如何合并代码

    Git实战技巧-多人协作开发出现代码冲突,如何合并代码 1.企业场景 小智和小黑两个人交叉修改同一个文件,这个时候小智修改完提交.问题来了,如果小智提交成功,那么就相当于忽略了小黑提交的内容.这个时候 ...

  2. (20/24) webpack实战技巧:watch实现热打包和添加代码备注

    (20/24) webpack实战技巧:watch实现热打包和添加代码备注 在前面的学习中,我们一直使用webpack-dev-server充当(本地)服务器和完成打包任务,但是当出项目团队联合开发, ...

  3. 【Git实战技巧】恢复被强制推送push失踪的代码

    前言 Git是一个易学难精的分布式版本控制系统,被我们码农常用于代码的管理.如果你还不了解Git,建议先通过廖雪峰的Git教程进行了解,再来看本文,因为本文以使用技巧为主,不会在基础名词上做过多解释. ...

  4. Git实战技巧-日常工作总结

    1.开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支 --1.更新本地master代码 git checkout master git pull--2.更新本地dev代码 gi ...

  5. git 修改tag 备注_【Git】第十二章:Git高级实战技巧

    1.查看不同版本之间的代码差异 短SHA-1值 使用git命令来代表某个commit时,我们不一定就是要用40位完整的SHA-1 hash值,也可以只是提供hash值的前几位就可以了,至少要4位以上, ...

  6. Python实战技巧(11)使用python收发邮件时需要的邮箱授权码如何获取

    Python实战技巧(1)Python字典类型数据如何递归地通过点'.'的方式访问 Python实战技巧(2)Python的pdb调试代码方法详解 Python实战技巧(3)多版本兼容安装部署(py2 ...

  7. Python实战技巧系列

    Python实战技巧(1)Python字典类型数据如何递归地通过点'.'的方式访问 Python实战技巧(2)Python的pdb调试代码方法详解 Python实战技巧(3)多版本兼容安装部署(py2 ...

  8. Python实战技巧(9)Python发送邮件

    Python实战技巧(1)Python字典类型数据如何递归地通过点'.'的方式访问 Python实战技巧(2)Python的pdb调试代码方法详解 Python实战技巧(3)多版本兼容安装部署(py2 ...

  9. Python实战技巧(10)Python解析邮件

    Python实战技巧(1)Python字典类型数据如何递归地通过点'.'的方式访问 Python实战技巧(2)Python的pdb调试代码方法详解 Python实战技巧(3)多版本兼容安装部署(py2 ...

最新文章

  1. A* 算法之父、人工智能先驱Nils Nilsson逝世 | 缅怀
  2. TCP/IP详解--学习笔记(7)-广播和多播,IGMP协议
  3. Minimal BASH-like line editing
  4. Python之 jinja2模板浅析
  5. 改善java程序的建议
  6. C++ Primer 5th笔记(chap 16 模板和泛型编程)类模板部分特例化
  7. 阿里云开源 image-syncer 工具,容器镜像迁移同步的终极利器
  8. 使用WebRTC开发Android Messenger:第1部分
  9. JBoss 系列九十六:JBoss MSC - 简介及一个简单演示样例
  10. 还有那个bspider不知道哪里的飞鸽传书
  11. 深入解析MVVM架构
  12. 【机器学习系列】隐马尔科夫模型第一讲:通俗易懂概述HMM
  13. bootdo框架介绍使用
  14. 凤舞江湖手游如何用电脑玩 凤舞江湖PC电脑版玩法教程
  15. 八月流火,谁是京东数科最燃的研发人?
  16. C语言实战--DDOS攻击器
  17. Codeforces 274E. Mirror Room-模拟+STL
  18. 华为荣耀play3分辨率_华为全新国行原封报价
  19. 配置opencv,丢失 opencv_world300d.dll
  20. Kubernetes----Pod配置污点和容忍

热门文章

  1. VsCode打开终端的方法
  2. 计算机专业当兵优势,本科应届毕业生直接“入伍”有什么优势?看完你就明白了...
  3. make and makefile
  4. 订单测试点(欢迎补充)
  5. 新媒体运营胡耀文教程:创作爆款短视频的“编剧思维”
  6. 关于数据库事务隔离级别的介绍
  7. 申请专利费用可以减免吗
  8. 解决本地连接不上虚拟机的问题
  9. i节点(inode)和文件描述符(file descriptor)的区别和联系
  10. Sun ONE 白皮书