在做一个git clone --mirror哪里是实际的文件?

时间:2013-03-07 15:39:14

标签: git git-clone mirror

我在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 tree,但git branch会返回分支。怪异。

1 个答案:

答案 0 :(得分:10)

当您git clone --mirror时,它会生成一个裸存储库,因此它不会有工作区。我更频繁地使用--mirror来制作我的工作回购的只读克隆,供其他人使用。

听起来你可能应该省略--mirror选项。

来自the git clone man page

  

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

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