我有一个类似下面的提交图。标有*
的提交表示大量提交。如何重新合并已经合并的分支?
A*
|
B---------
| |
C* D* <- old feature branch
| |
E---------
|
F*
|
G <- master
合并提交E做得不正确,C *中的某些更改(并非全部)已丢失。我如何重做合并以将更改重新引入当前主控?
所有东西都已经被推送(开源项目),所以更改历史记录不是一个选项。
我试图创建一个从提交C *补丁并应用到主,但由于从C *的变化有些已经被正确地合并,因为这个项目,因为演化出提交,的大约80%补丁失败。
理想情况下,我们会将C *中的所有更改应用于掌握并解决所有冲突。但是因为分支已经合并了,所以git没有检测到任何改变,并且不允许再次合并。
$ git checkout 5bc5295 # C
HEAD is now at 5bc5295... cleanup
$ git checkout -b "missing-commits"
Switched to a new branch 'missing-commits'
$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
$ git merge missing-commits
Already up-to-date.
你试过git恢复不正确的提交。这将撤消由错误提交引起的更改以及丢失的更改。像git的恢复E. – 2017-03-03 16:08:59
@Eyorther东西怎么会是帮助,因为合并是错误的承诺? – Vampire