1、解决思路
在团队开发中,提交代码到Git仓库时经常会遇到代码冲突的问题。
- 原因:多人对相同的文件进行了编辑,造成代码存在差异化
- 解决方案:
1. 使用工具或git命令对比不同分支代码的差异化
2. 把不同分支中有效代码进行保留,合并成最终代码
3. 提交合并后的最终代码
下面我们基于idea工具与git命令行两种实施操作开始动手实践。
2、动手实践
使用Idea工具解决
1. 对比不同分支代码的差异化
- 选择有代码冲突的类后,进行Merge(合并)
![](https://i-blog.csdnimg.cn/blog_migrate/d3b7aab181ba090d4e58c251ba77b685.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/5741dd2a9af836457dfcc7c64a181037.jpeg)
2. 把不同分支中有效代码进行保留,并合并成最终代码
- 在不同分支上,选择要保留的代码到Result(最终代码)
![](https://i-blog.csdnimg.cn/blog_migrate/c71fb90dbf0b9d80f97efc7566debac6.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/2e739eaa67856bef1232ad6f3ea6ab5b.jpeg)
合并完成后的代码:
![](https://i-blog.csdnimg.cn/blog_migrate/aa0a2cedd8dd31cc17724dc77ea8ab15.jpeg)
3. 向Git提交合并后的代码
![](https://i-blog.csdnimg.cn/blog_migrate/c989b4f4c3927c5940186120c392cfd0.jpeg)
使用Git命令行解决
1. 明确合并时哪些文件发生冲突 (当前分支为dev1)
- 执行命令:`git merge 分支名` 有冲突时会提示哪些文件有冲突
- 代码冲突:会停留在MERGING状态
![](https://i-blog.csdnimg.cn/blog_migrate/f8a62a886f6543040341e57b0e01a70d.jpeg)
2. 查看不同分支代码的差异化
- 执行命令:`cat 冲突文件`
![](https://i-blog.csdnimg.cn/blog_migrate/3f6ca2aef24e25a161e53a4642ce4673.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/b3afcb6e4ba95d0356e70e8b5da27b4b.jpeg)
3. 修改冲突文件(合并代码)
- 执行命令:`vim 冲突文件`
![](https://i-blog.csdnimg.cn/blog_migrate/02eee4a473bced11fae073cae1f6325d.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/7c3cf4e1f1576ced94a3d2cce7f9d784.jpeg)
通过vi编辑器,删除冲突文件中不需的内容后:
![](https://i-blog.csdnimg.cn/blog_migrate/ddd1dbdc359c1fc35fb596220977f02d.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/ac985e749a731002f8f4b747f514581e.jpeg)
4. 提交修改后的冲突文件
- 执行命令:`git add 修改后的冲突文件` 先添加到暂存区
- 执行命令:`git commit -m '消息'` 再提交到本地Git
![](https://i-blog.csdnimg.cn/blog_migrate/72b8d7750e01ded0b68e32b567029a1b.jpeg)
5. 推送到Git远程仓库
- 执行命令:`git push`
![](https://i-blog.csdnimg.cn/blog_migrate/3f221a3df1398a4e991f6dece7eb240c.jpeg)