删除与其他合并分支一起出现的分支

Delete a Branch That Comes With Other Merged Branch

我有3个分支;

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

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

C: 有变化的分支不能在 A 分支中。

所以,当我在做 B 的时候,我把 C 合并到 B 中,然后继续做 B。 最后我将 B 合并到 A.

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

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

如果分支C不是太大,我就用"git revert"。在像 GitKraken 这样的 GUI 客户端中,您通常可以右键单击提交并 "Revert" 它。

例如,如果您的 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.