Git 强制推送之后-历史记录在其他开发人员存储库中同步-可以吗?

Git 强制推送之后-历史记录在其他开发人员存储库中同步-可以吗?,git,Git,这是我上一个问题的后续: 问题是为什么在强制推送之后,历史不会在其他开发人员存储库中同步。答案是,其他开发人员在执行了git pull之后,会将他们的本地历史记录与来自服务器的历史记录合并。因此,如果我从顶部删除一个提交并强制推送它,那么它仍将位于其他开发人员存储库的顶部 现在说到这里,今天我再次测试了这个场景(这次是git服务器公司——它使用gerrit)。我看到上面的历史合并并没有发生 我所做的: 我有一个中央存储库,我已经将它克隆到两个本地文件夹。我已经创建了一个用于测试的远程分支,然后

这是我上一个问题的后续:

问题是为什么在强制推送之后,历史不会在其他开发人员存储库中同步。答案是,其他开发人员在执行了
git pull
之后,会将他们的本地历史记录与来自服务器的历史记录合并。因此,如果我从顶部删除一个提交并强制推送它,那么它仍将位于其他开发人员存储库的顶部

现在说到这里,今天我再次测试了这个场景(这次是git服务器公司——它使用gerrit)。我看到上面的历史合并并没有发生

我所做的:

我有一个中央存储库,我已经将它克隆到两个本地文件夹。我已经创建了一个用于测试的远程分支,然后将它推到了几次提交。他们的日志如下所示:

git log --preety=oneline
962937062641327e4ad9d83ee7ead97f6c5a3bc7 One test change
08667125120a39b24c2006d5a63f6e1be61828a4 Code fixes - extra comment
...
然后确保两个本地存储库都是同步的

然后在本地repostory中,lests说repo1,我已经删除了top commit:

git reset --hard 086671251
并使用git push-f原始头:dev/mike-test3推送repo1

然后在第二个本地repozitory中,我执行了
git pull
,现在让我困惑的是commit 962937062实际上被删除了,下面是git在输出时给我的信息:

git pull
remote: Counting objects: 10, done
remote: Finding sources: 100% (6/6)
Unpacking objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
From [...........]
 + 9629370...0866712 dev/mike-test3 -> origin/dev/mike-test3  (forced update)
   18ab880..bc08478  master     -> origin/master
First, rewinding head to replay your work on top of it...
即使是
git status
也没有显示要推送的未决提交

我对上一个问题的答案稍作改动。从
git reset HEAD^--hard
git reset--hard SHA1
,前一个对我来说不起作用(HEAD^不应该是HEAD~1?)