【发布时间】:2015-12-22 09:46:42
【问题描述】:
在 GitHub 中,我直接使用 Web 界面合并了一个拉取请求。将合并的拉取请求拉到我的本地后,我注意到代码中有一个严重错误。所以,我回到了 github 的网站并恢复了拉取请求。此操作生成了一个新的拉取请求,我立即将其合并回 master。
我所拥有的:
--C1-----C3-------C1' : master
\ / \ /
-C2- \ / : bug-branch
-C4- : revert-pull-request-1
其中C1是合并前的状态,C3是合并包含bug的分支(C2),C1 ' 合并我的回复。因此,C1' 与 C1 具有相同的代码。 C4 由 GitHub 自动生成。
我们希望我们的主分支历史中的所有提交都是我们项目的功能副本,因此我决定更改历史以将 C3 移出主分支。 (我的团队成员对此表示同意)。
所以,我将 HEAD 向后移动了两次,然后力推动了它。
将 HEAD 向后移动 2 次后得到的结果:
----C1 : master
|\
| -C2 : bug-branch
| \
|-----C3--C1' : revert-pull-request-1
现在我想彻底摆脱 C1' 和 C3。但我担心再次移动 HEAD 只会更糟。
我怎样才能摆脱 C3 和 C1'? C4 发生了什么?
我想要什么:
----C1 : master
\
C2 : bug-branch
【问题讨论】:
标签: git github merge pull-request revert