如何撤消Bitbucket上的合并?

Jam*_*mes 34 git bitbucket

我创建了一个合并(进入'master'分支),现在是Bitbucket回购.长话短说:我需要撤消合并.

我知道你可以在Github网站上做到这一点,但Bitbucket没有这个功能.我不清楚如何使用Git做这件事而不会造成混乱.

Vil*_*lle 64

您需要首先克隆本地系统上的存储库(您可以从Bitbucket中存储库的"Overview"页面获取SSH或HTTPS格式的repo URL):

git clone git@bitbucket.org:my/repo.git
-or-
git clone https://my@bitbucket.org/my/repo.git

git checkout master
Run Code Online (Sandbox Code Playgroud)

..然后恢复最近的提交.首先列出可用的提交:

git log
Run Code Online (Sandbox Code Playgroud)

..然后在合并之前选择提交:

git reset --hard 72ead1c4c1778c23c277c4f15bbb68f3bb205f54
Run Code Online (Sandbox Code Playgroud)

..其中哈希是合并之前提交的哈希值(来自日志).最后,强制将更改推回Bitbucket,覆盖历史记录.

git push -f
Run Code Online (Sandbox Code Playgroud)

当然,如果repo是共享的,并且其他用户已经撤消了你最近的提交并在其上构建,他们将不会高兴.因此,在这种情况下,请务必通知所有人您正在做的事情.

revert,如其他答案所述,是另一种选择; 它会保留您所做的提交,但会进一步修改存储库(使用新的提交),以便撤消您所做的更改.是否要使用revert取决于您是否希望提交中的信息保留在repo历史记录中.

有关撤消git中的更改的更多详细信息,请参阅Atlassian的一个很好的教程页面.


Bru*_*cca 9

2017年,Bitbucket实施了"恢复请求"功能.

要恢复拉取请求:

  1. 从拉取请求中,单击右上角的"还原"按钮.(可选)从"还原拉取请求"对话框中,更改要创建的新分支的分支名称.
  2. 单击"还原"按钮.单击Revert后,Bitbucket将创建新分支.即使取消拉取请求,还原分支仍保留在存储库中.
  3. 将打开"创建拉取请求"页面,并将恢复分支作为源.添加审阅者并进行其他更改后,单击"创建".

资料来源:文档.

  • 我找不到恢复选项。我猜这仅在 bitbucket 云中可用,而不在 bitbucket 服务器中可用 (2认同)

Uzb*_*jon 6

我建议做一个revert,因为你正在恢复公共回购.

git revert HEAD
git push -f origin
Run Code Online (Sandbox Code Playgroud)


小智 5

撤消提交的更改: git revert <commit id>