我们在这种格式的远程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
(反之亦然)?
答案 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详细说明了如何转换为裸存储库。