git - 删除其他合并分支附带的分支
问题描述
我有 3 个分支;
A:我们用于测试的主分支。
B:有变化的分支必须在A分支中。
C:有更改的分支不能在 A 分支中。
所以,当我在做 B 的时候,我将 C 合并到 B 并继续研究 B。最后我将 B 合并到 A。
我想从 A 中删除所有 C 提交,但在 A 中保留 B 分支。
我正在使用 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 中。
推荐阅读
- javascript - 通过javascript中的字符串列表访问对象属性
- javascript - Jquery点击不提交表单
- docker - 无法使用 Ingress Kubernetes 连接到服务
- angular - 在Angular http拦截器中刷新令牌后重试请求
- javascript - 将 2 位上的 0 值写入 JavaScript 中的字节缓冲区时出现意外行为
- .net - 当所有值都是字符串形式时,如何在.Net Core中验证json字符串中的字段数据类型?
- python - 为什么我的 pyglet 应用程序画得很有趣?
- csv - 从 Linux 中的文件中删除特定的行/行或重复项
- java - 坐标越界
- arduino - 在 Arduino 中使用 Serial 作为变量