0


【git】如何快速准确的回退(revert)已经合并(merge)主分支(master)的新提交代码

文章目录


前言

我们在做一些需求,正常流程经过开发,测试到最后和代码上线。但是有时候就会发生一些小插曲,比如产品说老板说某某某你的代码要延后上线!!或者你写的不合格预发环境出问题了!!你都需要revert代码,回退成你merge之前的主分支。那么如何快速精准的做呢?

在这里插入图片描述


一、merge模式

一般在企业级开发在个人提merge时候,合并master都会使用git merge -on -ff这个方式去合并代码,原因是这样在merge代码之后,会将原先的master和新提交的branch合并为一个新的branch,让这个branch成为新的master的header。具体流程可以参考下图

请添加图片描述
举例子在gitee中我们可合并就可以选择

合并分支

这个就是git merge -on -ff。而

扁平化分支

就是git merge。
在这里插入图片描述
通过sourcetree我们可以看到两者不同

在这里插入图片描述

二、回滚步骤

因为一般都会采用merge -on-ff合并所以只讲这种方式的回滚代码
1.新建一个reverse分支
2.查看git gragh找到回退合并
3.代码revert
接下来我来举个例子去解释如何回退。
比如接下来我要在我的项目中去revert调我刚刚merge过的分支test-git2024-10-19

项目链接:项目链接欢迎大家收藏一起进步

1.新建一个reverse分支

新建一个分支

reverse-test-git2024-10-19
git checkout {your branch}

在这里插入图片描述

2.调用git日志

git log

可以通过git log去观察但是效果并不明显
在这里插入图片描述

一般git gragh需要借助一些git 工具去查看,比如 sourcetree

在这里插入图片描述
可以看到提交那个就是mergeCommitId,而父级有两个都是commitId
找到这个提交和父级之后,就要开始reverse

3.代码reverse

通过上一步我们找到了merge的mergeCommitId和两个commitId,此时我们就需要知道我们希望保留那个commitId,这个commitId要是之前分支没合并过master的commitId

git revert {mergeCommitId}-m {保留的commitId,1 or 2}

在这里插入图片描述

revert成功,再次提交
在这里插入图片描述
在这里插入图片描述



总结

这样revert不仅快速而且不用手动修改代码,下次要是还需要merge,只需要去revert你revert掉的代码就可以了。

标签: git

本文转载自: https://blog.csdn.net/qq_42961251/article/details/143030788
版权归原作者 llbnk 所有, 如有侵权,请联系我们删除。

“【git】如何快速准确的回退(revert)已经合并(merge)主分支(master)的新提交代码”的评论:

还没有评论