重新克隆仓库后分支b1看不到未合并git-review提交:原因与解决方法
问题原因及解决办法
原因
- 你通过
git-review推送的提交,并没有更新远程仓库的b1分支,而是被Gerrit存放在专属的评审引用路径(比如refs/changes/xx/xxx/x)下,这类特殊引用不会被git pull --rebase或常规git fetch同步到本地。 - 重新克隆仓库后,本地的
b1分支是从远程仓库的b1分支拉取的,而远程b1分支本身并不包含这个未合并的评审提交,所以自然看不到。
解决方法
- 从Gerrit直接拉取提交:
- 打开Gerrit中该提交的详情页,找到「Download」按钮,复制对应的
fetch+checkout命令(格式类似git fetch origin refs/changes/01/12345/1 && git checkout FETCH_HEAD),在本地仓库执行即可获取该提交。 - 若要把提交放到
b1分支,执行完上述命令后,切换分支:git checkout b1,再用git cherry-pick <提交哈希>将提交应用到b1分支上。
- 打开Gerrit中该提交的详情页,找到「Download」按钮,复制对应的
- 用
git-review命令拉取:
从Gerrit页面找到该提交的Change-Id(格式类似Iabcdef1234567890),在本地仓库执行git review -d <Change-Id>,该命令会自动从Gerrit拉取对应提交并创建临时分支,之后你可以将提交合并到b1分支。
内容的提问来源于stack exchange,提问作者user20007266
相关产品推荐
相关产品推荐

