git clone获取HEAD,但git pull在Gerrit Repo上执行Merge Push操作后不会获取最新的



我有一个Git存储库,Gerrit审查运行在此之上。我在这个repo上有Push/Push-Merge-Commit权限(这意味着我可以绕过Gerrit审查并直接合并代码,就好像Gerrit不存在一样)。

作为日常活动的一部分,我将一个完成的主题(在Gerrit中通过并批准)merged输入我的主

git merge master-b734912

Updating 08f272e..d265243此步骤意味着我在SHA-1 08f272e上的本地/主HEAD快速转发到d265243,这是预期的

Fast-forward

然后是push,将我的本地与远程同步

git push gerrit:projectname master"gerrit:"别名在我的用户配置文件的ssh配置中定义

我从遥控器/主控器撤回以确保所有内容都处于同步

我得到的git pull gerrit:projectname master

From gerrit:crs2awips * branch master -> FETCH_HEAD Already up-to-date.

然而,git log --graph --oneline master显示了具有新提交的更新树作为预期

* d265243 git commit message 2
*   08f272e git commit message 1 

git log --graph --oneline origin/master仍然显示合并前的最后一次提交。

*   08f272e git commit message 1'

更令人惊讶的是,Gerrit Review Web UI显示远程已更新提交

此外,现在克隆存储库将具有一个master分支,该分支具有预期的提交id

根据以上内容,我得出结论。。。以某种方式本地CCD_ 15在CCD_。

每次在完成PUSH之后克隆新的repo有点不方便。

任何建议。

最近我也提出了这个问题。我认为这个问题与这个问题有某种联系。

好的,我在这里回答我自己的问题。

在我看来,可能发生的情况是,到远程的链接(对远程存储库的引用,即git branch -a。以"remotes/*"开头的分支是我在这里所指的)由于某种原因仍然"过时",我不理解。

在我建议快速检查之前,请尝试以下步骤:

git status应抛出消息

# On branch master
# Your branch is ahead of 'origin/master' by X commit(s).
# 
blah blah blah... 

当我看到这个消息时,我的本能是做一个push

git push remote master。。。在这种情况下,我正在研究master,为此我获得了

Everything up-to-date可能会让人困惑,我去做了一个git status,同样的消息再次出现:

# On branch master
# Your branch is ahead of 'origin/master' by X commit(s).
# 
blah blah blah... 

使用push -f选项并检查git status以查看消息是否消失。

如果你仍然收到同样令人困惑(但正确)的消息,你可能会怀疑你的遥控器。

一个相关问题中的一条评论为我指明了正确的方向。

在此列出步骤:

git remote -v抛出输出

origin  gerrit:project (fetch)
origin  gerrit:project (push)

从gitref在这里添加您的遥控器并删除原始

git remote add gerrit gerrit:projectgit remote rm origingit remote -v,应显示以下内容:

gerrit  gerrit:project (fetch)
gerrit  gerrit:project (push)

现在按照以下进行push -f

git push -f gerrit master可能会产生Everything up-to-date。。。但这一次它真的很重要;-)

git status上接收

# On branch master

nothing to commit (working directory clean)

最新更新