我有 3 个分支;
答:我们用于测试的主分支。
B:更改这些更改的分支必须在 A 分支中。
C:更改这些更改的分支不得位于 A 分支中。
所以,当我在研究B时,我将C合并到B中,并继续在B上工作。 最后,我将 B 合并为 A。
我想从 A 中删除所有 C 提交,但将 B 分支保留在 A 中。
我正在使用GitKraken,但每个建议都会被接受。
如果分支 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 中。