远程服务器上Git repo文件结构的差异

时间:2012-02-10 20:05:21

标签: git repository

我们在这种格式的远程git服务器上有两个Git存储库:

/git/repo1
/git/repo2

/git/repo1中,我看到了这些文件&目录:

branches  config  description  HEAD  hooks  info  objects  refs

/git/repo2中,我看到了这个目录:

.git

.git内,我看到了

branches  config  description  HEAD  hooks  info  logs  objects  refs

这两个回购似乎都很好。但是......

我想弄清楚这是怎么发生的,如果设置有问题就等着跳出来。哪一个是“正确”还是无关紧要?如果首选(我认为它可能是repo1的格式),如何使/git/repo2看起来像/git/repo1(反之亦然)?

3 个答案:

答案 0 :(得分:2)

看起来像是裸露的,而另一个则不是。如果它在服务器上,你想要一个简单的回购。

答案 1 :(得分:2)

repo1可能是使用git init --bare创建的,或者是使用git clone <uri> --bare克隆的

repo2是在没有--bare关键字的情况下创建或克隆的。

如果您不希望任何人在结账分支上工作,并且该存储库仅用于推送和提取,那么裸模式就是所需要的,建议使用。

非裸格式只是检出代码快照的目录,而git repo实际上存储在.git目录中,该目录与裸存储库相同。当某人实际处理与git存储库关联的数据时,通常就是这种情况。

答案 2 :(得分:2)

Repo1是bare repository而另一个不是。裸存储库通常仅用于远程连接。非裸存储库是开发人员开展工作的类型。

This post详细说明了如何转换为裸存储库。