8

我一直面临着理解裸存储库的困难。我到处都读到共享仓库是一个裸仓库。为什么它必须是一个裸回购?协作者克隆然后推/拉不能是正常的回购吗?

4

1 回答 1

4

它必须是一个裸仓库,因为一个非裸仓库将有一个工作树(意味着该仓库的特定版本已签出并且文件可见)。

每次你推送到一个非裸仓库时,你都不能保证它的工作树会反映你推送的内容,因为默认情况下,工作树不会被触及。
(想象一下,如果推送会触发工作树的更新:文件会突然发生变化,而不受接收端用户的任何控制)

这就是为什么将裸仓库作为上游仓库(您推送到的仓库)更简单的原因:没有工作树来管理/更新。

在“关于“裸”存储库的所有信息——什么、为什么以及如何修复非裸推送“中查看更多信息。

它没有签出的树,所以它只是做“服务器”在集中式 VCS 中所做的事情——当你推送到它时记录提交、分支等,并在你克隆或拉取时为你提供最新版本从中。

于 2014-06-09T07:23:21.103 回答