【问题标题】:Delete a Branch That Comes With Other Merged Branch删除其他合并分支附带的分支
【发布时间】:2018-06-07 17:05:55
【问题描述】:

我有 3 个分支;

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

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

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

所以,当我在 B 上工作时,我将 C 合并到 B 中并继续在 B 上工作。 最后我将 B 合并到 A 中。

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

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

【问题讨论】:

  • 您要撤消 C 引入的更改(将 C 保留在 A 的历史中),还是要删除 C 在 A 的历史中的任何痕迹?
  • 第二,我要去掉A历史上任何C的痕迹。

标签: git revert gitkraken


【解决方案1】:

如果分支 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 中。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多