仅使用Gerrit存储库的提交ID从中提取提交



让我们假设我有一个提交的SHA1,它正在Gerrit中进行代码审查,但没有它的引用(refs/changes/…)

问题是:如何从本地存储库中获取它?

这里有一个类似但与Gerrit无关的问题:从远程Git存储库检索特定的提交

答案似乎对Gerrit:不起作用

git fetch origin 67b4b77655d65004cc908aaf7e65b24bcaa81fd8:refs/remotes/origin/foo
fatal: Couldn't find remote ref 67b4b77655d65004cc908aaf7e65b24bcaa81fd8

如果我使用git-ls-remote:,我可以看到提交

git ls-remote | grep 67b4b77655d65004cc908aaf7e65b24bcaa81fd8
From ssh://gerrit/repo
67b4b77655d65004cc908aaf7e65b24bcaa81fd8        refs/changes/...

因此,Gerrit在显式获取期间似乎没有查看refs/changes/。

当然,作为一种变通方法,我可以使用refs/changes/…获取提交。。。引用,但我想知道是否有更直接的方法,更重要的是,Gerrit在其SHA1直接引用时找不到提交。

似乎你(几乎)已经回答了自己的问题。

git ls-remote | grep 67b4b77655d65004cc908aaf7e65b24bcaa81fd8 |  awk '{system("git fetch origin " $2)}' && git checkout 67b4b77655d65004cc908aaf7e65b24bcaa81fd8 

最新更新