9

我在 github 上有一个项目,我想在我的服务器上进行镜像。

我尝试了以下方法:git clone --mirror git@github.com:user/repo.git.

然后在repo.git目录中,我有以下文件结构(例如,输出ls):

FETCH_HEAD branches/ description info/ packed-refs HEAD config hooks/ objects/ refs/

所以我的问题是:我的文件在哪里!?看起来有一堆 git 相关的东西,但我就是找不到我写的代码。我错过了一些明显的东西吗?

顺便说一句,git status返回fatal: This operation must be run in a work treegit branch返回分支。奇怪的。

4

1 回答 1

13

当 you 时git clone --mirror,它会生成一个裸存储库,因此它不会有工作区。我--mirror更经常使用我的工作存储库的只读克隆,以供其他人从中提取。

听起来您可能应该忽略该--mirror选项。

从手册git clone

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

要完全清楚,裸镜像存储库确实包含从中克隆它的存储库的全部内容,但它没有可以查看这些文件的工作区。如果您从镜像克隆 ( git clone /path/to/local/mirror_repo.git) 中克隆,您将在那个新的非裸仓库中获得工作树。

于 2013-03-07T15:53:07.653 回答