分享免费的编程资源和教程

网站首页 > 技术教程 正文

代码即将上线,突然有个中间提交不能发布!怎么办?

goqiw 2024-10-27 10:34:41 技术教程 25 ℃ 0 评论


一个分支即将上线,有个提交突然不能上了怎么办

一个dev分支在进行上线前准备,里面假设有 ...-> A->B->C->D 这几个提交 D是最新的。突然 B这个提交,因为突然发现一个大BUG不能上线。

怎么办?不要慌,有三种方法帮助你回退。

A B C D 可以是分支,也可以是 某几个commit

方法一: 分支回退

使用 git reset 回退到错误提交之前的版本,然后后续再次提交

假设A这次合并或者commit的 id是 55658bb7cee6293b75e9f4177ef8231f65670fd5

具体做法是:

git reset --hard 55658bb7cee6293b75e9f4177ef8231f65670fd5

git push -f (-f强制推送)

注意: 如果是受保护的分支,强制推送时候需要取消受保护

然后,C 和 D在直接git merge进来,或者 git cherry-pick 进来

方法二: 新分支提交

基于错误提交之前的版本创建新的分支-然后新的合并到这个新的分支

假设A这次合并或者commit的 id是 55658bb7cee6293b75e9f4177ef8231f65670fd5

具体做法是:

git checkout 55658bb7cee6293b75e9f4177ef8231f65670fd5 -b branchname 
git push --set-upstream origin branchname

然后,C 和 D在直接git merge进来,或者 git cherry-pick 进来

通常使用这种方式的,如果需要覆盖原来分支,可能还需要进行分支重命名

方法三: 反做提交

反做某一个版本,不需要提交的版本

使用git revert -n 版本号反做,并使用git commit -m 版本名提交

注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。 具体可以参考:https://blog.csdn.net/yxlshk/article/details/79944535

小结

如果错误提交之后没有很多提交的情况下,使用方法一或者方法二,

使用方法一时候,可以提前基于当前分支创建一个分支作为备份

使用方法二,有的情况下,可能要面临分支重命名的操作

如果B之后还有巨多提交,那就使用方法一和方法二就有点麻烦了,就使用重做

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表