如何通过Pull Request执行git回滚?

时间:2016-08-11 02:03:43

标签: git bitbucket rollback pull-request

我们严格使用PR为我们的production分支引入更改(如您所愿)。我的假设是回滚意味着在合并rollback主题分支之前创建feature分支,如果需要,我们可以通过rollback PR回滚。然而,这并不像我想象的那样有效。

创建回滚分支:

git checkout 6af89ed -b rollback-prod

合并功能分支:

# production branch
git merge new-feature

回滚:

# production branch
git merge rollback-prod
Already up-to-date.

正如你所看到的(如果我错了,请纠正我)因为提交已存在于production分支中,它会转发Already up-to-date

我面临的问题是,这种回滚需要通过我们的GUI git工具(bitbucket)来实现。所以手动命令修复不是一个真正的选择。

是否建议通过PR回滚到提交的方法?

编辑1:

我想明确指出,rollback需要提前创建,以便Ops在回滚的情况下不必触及命令行。假设这是可能的,也许不

2 个答案:

答案 0 :(得分:1)

您可以在当前noexcept(false)(或者您需要从哪里开始回滚)创建rollback分支,并在要撤消的所有提交上使用master。现在你有一个分支,你可以使用拉取请求。

答案 1 :(得分:1)

有两种方法可以有效地"回滚" Git中的提交。一种是执行交互式rebase,在其中删除一个或多个提交,另一种是执行git revert。但是,因为您想通过拉取请求实现回滚,唯一的选择是执行git revert。所以你可以尝试以下方法:

git checkout production
git checkout -b rollback-prod      # create rollback branch from production
git revert 6af89ed^..HEAD          # add revert commit to this branch
git push origin rollback-prod      # push this branch to Bitbucket

现在,您可以在Bitbucket中为rollback-prod分支创建拉取请求。完成后,6af89ed提交将被有效还原。