美文网首页
git回滚技巧

git回滚技巧

作者: 黑金星 | 来源:发表于2018-10-02 17:37 被阅读0次

背景

在我们工作中,git分支分为master,dev,feature_xxx,temp_xxx_yyy几种分支。我们新需求都是从dev拉出一个temp分支作为自己的分支进行开发。然后具备上线条件了,把temp分支合到feature,再到dev。
temp中有一个特殊的分支,叫做temp_testing,从字面上看得出来。这就是测试分支。所以开发分支开发完都合到这上面测试。

最近在工作中遇到一个情况,有位同学不小心把测试分支合到了我的开发分支上。然后,我没有发现。继续提交开发,直到准备上线的时候,发现不对劲。

处理

此时,第一反应就是要把这个错合并提交给回滚掉。但在这个错误合并之后,我还有多次提交。所以,git reset这种直接回滚到某个版本,可是在错误版本后我已经有多次提交,这个方法不行。

所以,我就用git revert来操作。大家知道,git revert是提交一次新的提交,把你要错合并的那些修改给反转下,也就是你新增了a文件和b文件,在revert后生成一次新的提交,把a,b两个文件给删了。本来,以为搞定了。不过,这时候新问题出现了。

在测试分支中,有些修改是这次要上线的,有些不要,就比如上面举例的a文件是需求1,要上线的,b文件是需求2,暂不上线。而我的代码是要上线的,需要从temp分支合并到feature分支。我发现,需求1的代码已经合并到feature分支了。意味着,如果我把我的分支合并过去,会把a文件给删了。我通过merge一下尝试,原本在feature分支存在的a文件,真的不见了。这个时候千万不能push。把这个本地feature删了。看来,git revert这条路也不通了。只能另找方法。

解决

我找到了一个操作,git cherry-pick。cherry-pick就是支持我把某个分支的一个或几个commit再次提交到其他分支去,等于copy这几个提交。实际操作就是我在我的开发分支的错误合并提交的前一个commit开出一个新分支b。然后把我开发分支在错误合并后提交的几个commitid记下,通过

git cherry-pick id1 id2...

来完成。这样子就把这个错误提交从中间剔除。再合并到feature分支上,准备上线。

相关文章

  • git回滚技巧

    背景 在我们工作中,git分支分为master,dev,feature_xxx,temp_xxx_yyy几种分支。...

  • git

    显示 git push将会提交的 commit 信息 git 回滚 本地回滚 远程回滚 git diff1.sta...

  • 谈谈 Git 代码回滚

    本文讲述了如何使用 git rebase -i 及 git cherry-pick 实现代码回滚。代码回滚属于高危...

  • git/svn 技巧以及常见问题整理

    Git 实用技巧 Git乱码问题解决方案汇总 常用快捷键 常见问题 遇到多个commit回滚的情况,采用方案如下 ...

  • git 总结

    参考资料:git 删除本地分支和远程分支、本地代码回滚和远程代码库回滚 git 删除分支 1. 本地分支:git ...

  • Git回滚

    若是master,push --force受保护,需关闭受保护设置

  • Git - 回滚

    回滚命令 场景回滚某个commit回滚到某个commit恢复到与HEAD一致回滚Merge回滚最新的Merge回滚...

  • git回滚

    方法一,删除远程分支再提交 ①首先两步保证当前工作区是干净的,并且和远程分支代码一致 $ git co curre...

  • git回滚

    一、 git回滚到任意版本 查看历史提交的log中的版本号$ git log -3 查看最近3次提交记录 回滚到...

  • git回滚

    git作为版本控制肯定是常见的了,对于git有一个版本回滚的功能是我们在开发过程中应该用到比较多,掌握它对于我们开...

网友评论

      本文标题:git回滚技巧

      本文链接:https://www.haomeiwen.com/subject/gcrmoftx.html