我已经在stackoverflow上查看了很多类似问题的答案,但似乎没有解决问题的方法。我做了一堆修改并且有一个非常好的提交历史,我现在很好。一旦一切正常,拉动请求与我分叉的仓库合并,我做了一个拉动请求。但是我的fork在原始repo之前仍然是X数量的提交,我似乎无法重置此提交计数器。我尝试过改造,重置和看似我能找到的其他所有东西。但我仍然看到这个:
如何让一切恢复正常?到目前为止,我只对自己的项目使用git,而git的一些设计让我感到困惑。
答案 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