冲突发生在push远程分支过程中,在idea中可以方便的去解决git冲突,idea会智能的判断冲突的类型,如果可以直接合并则会自动完成合并,如果不能直接合并会让开发人员手动完成合并
情况1:不同人修改不同文件
开发人员A新增或修改文件a提交到分支1,之后开发人员B新增或修改文件b提交到分支1,此时提交分支会报错
可以点击merge合并命令,会拉取远程文件到本地进行合并后自动提交
而点击rebase命令,会拉取远程文件到本地进行合并,再次手动点击push提交。
情况2:不同人修改同一文件不同区域
开发人员A修改文件a第三行提交到分支1,之后开发人员B修改文件a第七行提交到分支1,此时提交分支会报错
可以点击merge合并命令,会拉取远程文件到本地进行合并,再次手动点击push提交。
情况3:不同人修改同一文件相同区域
开发人员A修改文件a第三行提交到分支1,之后开发人员B修改文件a第三行提交到分支1,此时提交分支会报错
点击merge命令,会再次弹窗,冲突的代码会显示到文件中。
此时再次点击弹窗中merge
需要手动完成merge合并
左边为自己的版本,中间为最终合并的版本,右边为远程版本
点击>>将冲突的代码增加到中间合并版本中,点击X则放弃该处代码。
合并完成后再手动点击push提交
情况4:不同人修改同一文件的文件名
开发人员A修改文件a的名称为文件c提交到分支1,之后开发人员B修改文件a的名称为文件d提交到分支1,此时提交分支会报错
一般很少发生同一文件名被不同人修改的情况
此时点击rebase,选择该文件最终的文件名是取你自己的文件名,或者取其他人修改的文件名,选择好文件名后,代码中可能需要调整冲突代码,如文件名为类名,修改了文件名,就需要修改类名。
当commit提交本地时发现无法成功commit,需要在终端执行git status查看状态,发现有旧文件名丢失。需要执行git rm 旧文件名全路径,执行完成后就可以commit提交本地了,最后手动点击push提交。
遇到git相关的问题,可以执行git status查看文件状态