假設我有一個承諾這下格里特代碼審查,但SHA1不是它的參考(參考文獻/修改/ ...)拉使用其提交ID從格里特庫提交僅
問題是:如何從我的本地存儲庫中獲取它?
有一個類似的問題還沒有格里特無關的問題在這裏:Retrieve specific commit from a remote Git repository
似乎答案不格里特工作:
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/... reference來獲取提交,但我想知道是否有更直接的方法,更重要的是,當Gerrit未找到直接由其SHA1引用時提交。
您是否試過先檢查出它? 'git chekcout SHA1' – HiB 2014-09-24 17:32:18
是的,它不在本地存儲庫中。 – ocroquette 2014-09-25 11:09:22
in git config _remote.origin.fetch_ param可能包含'+ refs/heads/*:refs/remotes/origin/*'但Gerrit提交存儲在'refs/changes/'這就是爲什麼我認爲你需要知道具體的參考能夠獲取它 –
HiB
2014-09-25 13:43:57