首页 > 解决方案 > 删除其他合并分支附带的分支

问题描述

我有 3 个分支;

A:我们用于测试的主分支。

B:有变化的分支必须在A分支中。

C:有更改的分支不能在 A 分支中。

所以,当我在做 B 的时候,我将 C 合并到 B 并继续研究 B。最后我将 B 合并到 A。

我想从 A 中删除所有 C 提交,但在 A 中保留 B 分支。

我正在使用 GitKraken,但每个建议都会被接受。

标签: gitrevertgitkraken

解决方案


如果分支 C 不是太大,我会使用“git revert”。在 GitKraken 等 GUI 客户端中,您通常可以右键单击提交并“还原”它。

例如,如果您的 C 分支有提交 [C1, C2](按此顺序),您应该先恢复 C2,然后再恢复 C1:

git revert C2
git revert C1

注意:将此处的 C1 替换为 C1 提交的 SHA。

如果其中一个还原没有完全发生,您需要找到并解决冲突。

如果您将 C 合并到 B 不是快进合并,而是产生了合并提交,您可以在历史日志中找到该合并提交 - “Cm” - 并尝试仅恢复该单一提交:

git revert Cm

如果您在 C 中有超过 3 次左右的提交,我会尝试将 A 重置为之前的状态(在 B 被合并之前),准备一个新的 B 的干净版本 - 称之为 B2 - 并将 B2 合并到 A 中。


推荐阅读