我可以从本地git镜像克隆中签出分支吗

时间:2020-06-20 08:26:13

标签: git git-mirror

我已经使用--mirror标志克隆了我的仓库,如果可以,我可以从中检出分支吗?如果没有,为什么?

git branch显示了所有分支的列表,但是git checkout branch-name给了我错误提示:
fatal: This operation must be run in a work tree

1 个答案:

答案 0 :(得分:1)

请参考官方docs

--mirror

设置源存储库的镜像。这意味着--bare。与--bare相比,--mirror不仅将源的本地分支映射到目标的本地分支,还映射了所有引用 (包括远程跟踪分支,注释等),并设置一个refspec 配置,以便所有这些引用在目标存储库中被git remote update覆盖。

使用--mirror选项克隆您将隐式使用--bare选项,这将创建一个没有工作树的存储库。
--bare选项主要用于服务器端或特定用例。

在这种情况下,您不应直接使用镜像存储库,因为它没有可用的树,因此不适合用于编辑文件或git checkout的git命令。 您应该git clone your-mirrored-repo(没有--bare / --mirror选项)具有完整的工作树,从镜像存储库开始,您可以在其中使用所有git命令或直接编辑文件。