未fetch到本地时如何通过短commit hash查询远程对应完整commit hash
可正常查询,具体实现分两种场景:
客户端侧操作(无需拉取提交到本地)
- 若目标提交是远程仓库某分支、标签或其他引用的顶端提交,可直接执行命令匹配完整哈希:
git ls-remote <远程仓库别名/地址,通常为origin> | grep c4cde4c4 - 若目标提交不在任何远程引用的顶端,需要远程Git服务端已开启
uploadpack.allowReachableSHA1InWant配置,此时可通过模拟拉取命令(不会实际下载提交到本地)拿到完整哈希:git fetch --dry-run origin c4cde4c4 - 如果你用的是GitHub、GitLab、Gitee这类公共托管平台,还可以直接在浏览器访问
https://<平台域名>/<命名空间>/<仓库名>/commit/c4cde4c4,页面加载完成后地址栏会自动补全为完整的40位commit哈希。
你提到的本地直接执行
git rev-parse c4cde4c4确实无效,本地不存在该提交时会返回如下报错:fatal: ambiguous argument 'c4cde4c4': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]'
远程服务端侧操作
直接登录存储仓库的服务器,进入对应仓库的文件目录后执行git rev-parse c4cde4c4,即可直接返回对应的完整commit哈希。
内容的提问来源于stack exchange,提问作者cateyes
相关产品推荐
相关产品推荐

