You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在已克隆的Git仓库中拉取所有refs?

如何在已克隆的Git仓库中拉取所有refs?

你提到的通过镜像克隆获取所有refs的命令可整理为:

git clone --mirror ssh://some.remote.server/some-repo.git cloned-repo/.git
cd cloned-repo
git config --bool core.bare false
git checkout some-branch

针对能否在一个已克隆的Git仓库中,从远程拉取所有refs?(注:"所有refs"指refs/*,包括分支、标签,以及如refs/contrib/$merge_request_id/versions/$version、refs/pull/$pull_request_id/head这类合并请求相关的refs),答案是可以的,具体操作如下:

  • 先检查当前远程仓库的fetch规则(以origin远程为例):

    git config --get-all remote.origin.fetch
    

    默认情况下,Git只会拉取refs/heads/*(远程分支)和refs/tags/*(标签)到本地。

  • 删除现有fetch规则,添加覆盖所有远程refs的规则:

    # 清除所有已有的fetch配置
    git config --unset-all remote.origin.fetch
    # 添加拉取所有refs的规则,将远程所有refs映射到本地refs/remotes/origin/目录下
    git config --add remote.origin.fetch '+refs/*:refs/remotes/origin/*'
    

    其中+符号表示强制更新对应本地引用,即使是非快进式更新也会覆盖。

  • 执行拉取命令,获取所有远程refs:

    git fetch origin
    

完成后,可通过git show-ref命令查看本地已获取的所有refs,确认是否包含远程的全部refs。

内容的提问来源于stack exchange,提问作者Runxi Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 08:18:17