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

我可以从本地git镜像克隆签出分支吗,git,git-mirror,Git,Git Mirror,我已经使用--mirror标志克隆了我的回购协议,如果是,我可以从中签出分支吗?如果没有,为什么 git-branch向我显示所有分支的列表,但git-checkout-branch-name给我错误提示: 致命:此操作必须在工作树中运行参考官方: --镜像 设置源存储库的镜像。这意味着--bare。与--bare相比,--mirror不仅将源的本地分支映射到目标的本地分支,还映射所有引用 (包括远程跟踪分支、注释等)并设置参考规范 配置,使所有这些引用都被目标存储库中的git远程更新覆盖 使用

我已经使用
--mirror
标志克隆了我的回购协议,如果是,我可以从中签出分支吗?如果没有,为什么

git-branch
向我显示所有分支的列表,但
git-checkout-branch-name
给我错误提示:
致命:此操作必须在工作树中运行

参考官方:

--镜像

设置源存储库的镜像。这意味着
--bare
。与
--bare
相比,
--mirror
不仅将源的本地分支映射到目标的本地分支,还映射所有引用 (包括远程跟踪分支、注释等)并设置参考规范 配置,使所有这些引用都被目标存储库中的
git远程更新
覆盖

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

在您的情况下,您不应该直接使用镜像repo,因为没有工作树,不适合编辑文件或git命令,如
git checkout

您应该
git克隆镜像repo
(不带
--bare
/
--mirror
选项)以拥有一个完整的工作树,从镜像repo开始,您可以在其中使用所有git命令或直接编辑文件。

bare存储库没有工作树,它只包含存储库的提交和历史记录,而不是用于编辑文件的位置。因此,除非从原始源或裸存储库执行非裸克隆,否则“签出”之类的操作将不起作用。