git 撤销中间某次提交,保留其他提交的方法

今天上班脑抽了,吧test直接合到了uat,因为项目近期就我一个人开发,自己拉个三个分支再改不同的东西,最后都是发到test分支发测试,发生产的时候一个个和嫌麻烦,直接吧test分支怼到了uat,结果生产就出问题了,之前同事改的代码合了test,但是还没改完,不能上生产,那怎么办,看看能否撤回他那次提交,试了很多办法都不行,最后还是解决了:

当想撤销中间某次提交时,强烈建议使用revert命令,而不是reset。
git reset –hard commit_id 虽然可以回退远程库,但是会把其他提交的代码全部退回,需要从新提交,所以建议使用revert命令,只退回那次提交的内容

正确的步骤:

git revert commit_id
//如果commit_id是merge节点的话,-m是指定具体哪个提交点
git revert commit_id -m 1 (例如:‘git revert 33da8c5a -m 1’)
在这里插入图片描述

//接着就是解决冲突
git add -A
git commit -m “…”
git revert commit_id -m 2
//接着就是解决冲突
git add -A
git commit -m “…”
git push

其中git revert commit_id -m 数字是针对,merge提交点的操作。
如果是普通的提交点,不需要这么麻烦。

参考地址:
[Git高级教程(二)] 远程仓库版本回退方法
https://www.cnblogs.com/ShaYeBlog/p/5368064.html
https://blog.csdn.net/hongchangfirst/article/details/49472913

猜你喜欢

转载自blog.csdn.net/m0_46156566/article/details/130636634
今日推荐