如何撤消 git flow 功能完成?

Posted

技术标签:

【中文标题】如何撤消 git flow 功能完成?【英文标题】:How to undo git flow feature finish? 【发布时间】:2012-11-07 03:40:07 【问题描述】:

我正在学习 git-flow,我刚刚做了git flow feature finish <feature-name>,它合并了我的功能分支来开发和删除它。

我想把特性分支推送到 github,这样我可以在同行评审后合并它。

所以问题是,我如何“撤消”这个命令。或者换句话说,我怎样才能将我的最后两个提交从开发移动到我的功能分支?

【问题讨论】:

【参考方案1】:

这些步骤应该可以解决问题:

获取所需的 sha:

git log

<sha1> 是合并前的提交<sha2> 是您开始开发该功能之前的最后一次提交

git checkout develop
git checkout -b feature/<feature-name>
git reset <sha1> --hard
git checkout develop
git reset <sha2> --hard

推送你的功能分支。

【讨论】:

在我意识到为什么要在功能分支(第三行)上重置之前,我不得不阅读这几遍。隐藏起来看起来很明显:)谢谢! (顺便说一句,&lt;sha's&gt; 迷失在标记中) 这简直救了我的命。谢谢彼得。 你拯救了我的职业生涯。谢谢@Peter ;) 如果 git flow feature finish 是您的最后一个操作,您可以在两个分支中都执行 git reset --hard HEAD^ 而不是使用提交的 shas,因为在这两种情况下提交都是最后一个。 如果像我一样,你想撤销hotfix finish,你还需要重置master分支的最后一次提交。

以上是关于如何撤消 git flow 功能完成?的主要内容,如果未能解决你的问题,请参考以下文章

git flow 基本操作

Git版本管理规范(Git Flow)

三个知识点搞定git-flow

撤消 Git 分支提交和合并

撤消从 WWV_FLOW_FILES 中删除

自[重复]以来如何“撤消”git提交同时保留所有其他提交