遇到几位同学问 git 冲突,分三类:
1.pull 拉取冲突
2.push 推送冲突(推送失败)
3.merge 分支合并冲突
谢谢董老师无私支援~~~
1.pull 拉取冲突
- 简而言之:就是拉取服务器A文件之前,本地A文件已经有修改,导致 两边代码不一致 所产生的冲突
- 解决方案:将本地A文件 复制出来,重新拉取服务端A文件,对比修改完本地和重新拉取的A文件后,重新提交
2.push 推送冲突
- 简而言之:就是推送服务器A文件之前,服务器已经有修改,导致 本地与服务器的代码不一致,但此时不是真的冲突,因为压根就没有推送成功,只是提示 推送失败!
- 解决方案:将本地A文件 复制出来,重新拉取,再将本地A文件加入,重新提交
3.merge 分支合并冲突
- 简而言之:两个分支修改了A文件,导致内容不一样,所以在合并分支时产生了冲突
- 问题描述:
3.1 两份分支代码处于同步,代码都一样

3.2 两个分支有相同文件发生修改,导致内容不一致

3.3 在分支1处进行合并操作,提示有文件冲突,两个 分支的 a.txt 到底怎么合并呢?

4.【merge 分支合并冲突】 的 解决方案:
4.1 在分支1处,将冲突的文件 复制出来

4.2 在分支1处,取消本次合并,两个分支文件还原 git merge --abort

4.3 在分支1处,将刚才发生过冲突的文件 复制出来

4.4 切换到 分支2,将刚才发生过冲突的文件 复制出来

4.5 在分支2,将刚才备份的分支1的a.txt文件 直接替换覆盖掉分支2 中的a.txt文件,并提交。这样就保证了合并前两边代码一致了!

4.6 切换到分支1,进行合并,此时 a.txt 文件两边一样,所以合并成功

4.7 将备份好的冲突文件 拿出来 进行合适的修改,再覆盖后提交到分支1

网友评论