拉请求合并后,X仍然在上游提交

时间:2017-07-31 19:10:51

标签: git github

我已经在stackoverflow上查看了很多类似问题的答案,但似乎没有解决问题的方法。我做了一堆修改并且有一个非常好的提交历史,我现在很好。一旦一切正常,拉动请求与我分叉的仓库合并,我做了一个拉动请求。但是我的fork在原始repo之前仍然是X数量的提交,我似乎无法重置此提交计数器。我尝试过改造,重置和看似我能找到的其他所有东西。但我仍然看到这个:

here

如何让一切恢复正常?到目前为止,我只对自己的项目使用git,而git的一些设计让我感到困惑。

2 个答案:

答案 0 :(得分:1)

PR AreaFiftyLAN/toornament-client#13已合并但不是经典合并,而是提交0d1b439中的压缩合并以及我在历史记录中看不到的提交。

通过使用压缩合并,您的fork分支的合并的上游历史记录中没有跟踪。这样,您的前叉就无法快速转发到上游的分支机构...... 唯一的办法就是在考虑合并之后摆脱你的fork分支。

强制您的fork master分支与上游master分支的同一点:

git fetch --all
git push --force upstream/master:master

一旦你这样做,它可能会抱怨你当地的主分支前进/后退。如果您执行git pull [--rebase],则只需将您的本地历史记录与上游历史记录合并/重新组合,您仍然可以保持领先。因此,您可以将本地master分支移动到分叉的master分支:

git stash # in case of local modifications
git reset --hard origin/master
git stash pop

这样您就应该与上游和fork存储库同步。

你还应该考虑清洁你的遥控器只保留那些2(原点和上游),因为我猜其他的只是它们的局部重复。
您可以使用git remote --verbose检查您的遥控器的网址:只为每个不同的网址保留一个。

答案 1 :(得分:0)

使fork主机和上游master均衡的另一种解决方案。

git checkout master      // origin master
git fetch upstream
git reset --hard upstream/master
git push --force