所以,我在 Github 上 fork 了一个项目,并做出了两次提交。我也将这些提交推送到了我的 fork。
与此同时,上游项目也有两次提交。
假设在 fork 的时候,两个分支都位于 A 头部
A
然后,我做了两次提交 B 和 C,并将它们推送到了我的 fork 中
A - B - C
上游项目做了 D 和 E 两个提交
A - D - E
在我的克隆库中,我从上游获取了代码,因此状态为
A - D - E
\
B - C
然后我执行了一个变基操作,状态变为
A - D - E
\
B - C - D' - E'
现在,我希望在我的分支中,不再存在D和E,而且头部指向E'。只有我一个人使用我的分支。
我查看了这里的几个其他答案,但没有看到有关多个头部(E和E')的问题。
git push -f
时,git 抛出了fatal: You are not currently on a branch. To push the history leading to the current (detached HEAD) state now, use git push origin HEAD:<name-of-remote-branch>
。最后我想要的是让我的 origin/master 在 E',并且让 D 和 E 消失。如果我理解你的意思正确的话,D 和 E 将始终存在,但不会出现在日志中? - Sundeepgit -f push origin HEAD:master
是实现这个的正确方式吗? - Sundeepgit push -f
(假设你通常只使用git push
)。但是有很多方法可以做到这一点,你的偏好可能与我的不同。 - Mark Adelsbergerlog
命令,就像你解释的那样没有显示提交 D 和 E。 - Sundeep