【发布时间】:2014-06-09 07:02:57
【问题描述】:
我在理解裸存储库方面遇到了困难。我到处都读到共享仓库是一个裸仓库。为什么它必须是一个裸回购?不能是合作者克隆然后推/拉的普通回购吗?
【问题讨论】:
标签: git repository git-bare
我在理解裸存储库方面遇到了困难。我到处都读到共享仓库是一个裸仓库。为什么它必须是一个裸回购?不能是合作者克隆然后推/拉的普通回购吗?
【问题讨论】:
标签: git repository git-bare
它必须是一个裸 repo,因为一个非裸 repo 会有一个工作树(意味着该 repo 的特定版本已签出并且文件可见)。
每次你推送到一个非裸仓库时,你不能保证它的工作树会反映你推送的内容,因为默认情况下所说的工作树不会被触及。
(想象一下,如果推送会触发工作树的更新:文件会突然发生变化,而不受接收端用户的任何控制)
这就是为什么将裸仓库作为上游仓库(你推送到的仓库)更简单的原因:没有工作树来管理/更新。
在“all about "bare" repos -- what, why, and how to fix a non-bare push”查看更多信息。
它没有签出树,所以它只是做“服务器”在集中式 VCS 中所做的事情——当你推送到它时记录提交、分支等,并在你推送到它时为你提供最新版本克隆或从中提取。
【讨论】: