如何删除 master 到分支的合并(使用 sourcetree)

How to remove merge of master into branch (using sourcetree)

我的 git 存储库有点乱。我曾在多个分支机构工作过,并进行了合并,回想起来这是一个非常糟糕的决定。

我当时在分支机构 JIRADAPTER-108、JIRADAPTER-109 和 JIRADAPTER-104 上工作(见历史附图)。 JIRADAPTER-108 和 JIRADAPTER-109 是错误修复,我从 master 分支出来并分别合并回 master,只有一次提交。为了使用这些更改,我决定将 master 合并到分支 JIRADAPTER-104,结果证明这是个坏主意!

乍一看,我无法将分支 JIRADPATER-104 中的所有内容合并回主分支,因为不允许狐步舞合并。这是,因为我试图从 origin/JIRADPATER-104 (最后一个绿色提交)合并。

我能够通过在将 master 合并到 JIRADAPTER-104(最后一个粉红色提交)之前从最后一次提交合并来将正确的更改合并到 master 中。

虽然只是装饰性的,但我现在尝试摆脱那些提交到分支 JIRADAPTER-104 的提交,在那里我将 master 合并到其中(所有绿色提交)。

我试图重置为最后一次粉红色提交:没有成功。

谁能帮我去掉那两个绿色提交,让 origin/JIRADAPTER-104 和 JIRADAPTER-104 标签在最后一个粉红色提交上?

编辑 使用 worktree,一定要在 Tool > Options > Git.

下设置选项 Enable Force Push

然后工作流程与 Mlad274 所建议的非常相似(非常感谢):

  1. 单击应该在分支中最后的提交
  2. 来自上下文菜单 select Reset current branch to this commit
  3. 按下(菜单底部的select Force Push

既然你知道你想要的提交,就强制分支指向它。

  1. git checkout JIRADAPTER-104
  2. git reset --hard <COMMIT-ID>
  3. git push -f