Git新手求助:使用git revert回退提交时遇冲突如何解决?
Git Revert冲突解决:保留首次、第三次提交,移除第二次提交
冲突原因
你三次提交都是在同一个Java文件里连续追加打印语句,第二次提交的代码夹在第一次和第三次中间。执行git revert <第二次提交ID>时,Git无法自动判断如何删除中间的行(因为第三次提交在第二次之后追加了内容),所以触发冲突。
解决步骤
- 执行
git revert <第二次提交ID>出现冲突后,打开冲突的Java文件,会看到Git标记的冲突内容,示例如下:
System.out.println("姓名:XXX"); <<<<<<< HEAD System.out.println("职业:XXX"); System.out.println("地址:XXX"); ======= >>>>>>> revert-xxx-<第二次提交ID>
- 手动编辑文件:
- 删除所有冲突标记(
<<<<<<< HEAD、=======、>>>>>>> ...) - 删除第二次提交添加的
System.out.println("职业:XXX");语句 - 保留第一次和第三次的打印语句,最终文件内容示例:
System.out.println("姓名:XXX"); System.out.println("地址:XXX");
- 删除所有冲突标记(
- 保存文件后,执行暂存命令:
git add <你的Java文件名> - 完成revert提交:
Git会自动生成默认的revert提交信息,直接确认即可。git commit
验证
操作完成后,通过git log查看提交历史,同时打开Java文件确认内容:第二次提交的打印语句已被移除,第一次和第三次的内容保留。
内容的提问来源于stack exchange,提问作者Samer Hadid
相关产品推荐
相关产品推荐

