git中的裸共享仓库的概念

我一直在理解裸仓库时遇到困难。 我到处读过一个共享的回购是一个裸回购。 为什么它必须是一个裸回购? 难道这不是一个合作者克隆然后推/拉的正常回购吗?

它需要是一个裸回购,因为一个不光秃的回购会有一个工作树(意味着该回购的特定版本签出和文件可见)。

每次你推到一个非裸回购,你不能保证它的工作树会反映你所推动的,因为默认情况下,工作树将不会被触动。
(想象一下,如果一个推动会触发工作树的更新:文件会突然改变,而没有来自接收端的用户的任何控制)

这就是为什么有一个裸回购作为一个上游回购(你推一个)更简单:没有工作树来pipe理/更新。

请参阅“ 所有关于”裸“回购 – 什么,为什么,以及如何解决非裸投 ”的更多信息。

它没有检出树,所以它只是做了“服务器”在集中式VCS中的function – logging提交,分支等等,当你克隆或者提供给你最新的版本时从中。