Git实战技巧-比较不同分支之间的差异和代码的改动
1、企业场景
播仔即将结束在传智公司的开发工作,跳槽到黑马公司。项目经理考虑到播仔即将离职,只分配了一个简单的账户密码登录功能,而其他方式的登录功能让小黑去开发了。
项目经理为了保障播仔在离职前能完成开发工作,开始催促播仔工作进度:
播仔在找到小黑开发的代码分支后,开始合并代码:
此时:出现代码冲突问题
播仔懵了,怎么代码冲突了呢?
2、问题分析
为什么播仔在合并代码时,会出现代码冲突呢?
两位程序员(播仔、小黑)在各自分支下开发的功能,会涉及到一些相同的类。两位程序员都有针对相同的类中代码进行修改
在合并时,由于相同的类中代码有差异化,所以出现代码冲突
3、解决思路
3.1)使用Idea工具解决:
- 对比不同分支代码的差异化
- 把不同分支中有效代码进行保留,并合并成最终代码
- 向Git提交合并后的代码
3.2)使用Git命令行解决:
- 明确合并时哪些文件发生冲突
- 查看冲突文件内容,分析冲突代码
- 修改冲突文件(合并代码)
- 提交修改后的冲突文件
- 推送到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、问题小结
在团队开发中,经常会遇到代码冲突的问题。
原因:多人对相同的类进行了开发维护,造成代码存在差异化
解决方案:
- 使用工具或git命令对比不同分支代码的差异化
- 把不同分支中有效代码进行保留,合并成最终代码
- 提交合并后的最终代码