【发布时间】:2013-06-10 15:15:45
【问题描述】:
我的 repo 偶然发现了这个问题:
我的分支树结构如下:
(branch) a - b - c - d - e - f - g
/ /
(master) 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 ...
在这里,当我创建分支时,我在提交 1 时从 master 分支,然后在提交 5 时将 master 合并到分支中。
问题是:在合并时,我丢弃了一些更改,我想恢复它们,这样我就可以再次将 master 合并到我的分支中,就好像提交 5 的合并从未发生过一样。
换句话说,我如何撤消合并对提交 5(或提交 d)的影响,而不会丢失我在后续提交中的更改? (即e-f-g)
我的目标是能够将 master 合并回分支,但现在我会更加小心我的合并。
谢谢。
【问题讨论】:
-
您的分支是否已与其他人共享(推送)?或者变基可以吗?
-
已经上传到服务器了,但是没人动。是的,只要我能够保留更改,就可以重新设置它。所以,比如说,如果你想变基到 c,只要我能保持 e - f - g,但失去 d 就可以了。
-
这个问题似乎与this question 重复。是吗?
-
我已经尝试了答案中的方法。但是,这两个分支已经不同步很长时间了,我根本没有在 shell 中看到 commit d。但是,最后一个答案似乎很有希望,我明天试试。