git中裸共享存储库的概念

时间:2014-06-09 07:02:57

标签: git repository git-bare

我一直难以理解裸存储库。我到处都读到共享的回购是一个简单的回购。为什么它必须是一个简单的回购?它不能成为合作者克隆然后推/拉的正常回购吗?

1 个答案:

答案 0 :(得分:4)

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

每次你推动一个非裸露的回购,你无法保证它的工作树会反映你正在推动的东西,因为默认情况下工作树将不受影响。
(想象一下,如果推送会触发工作树的更新:文件会突然改变,而不会受到接收端用户的任何控制)

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

请参阅" all about "bare" repos -- what, why, and how to fix a non-bare push"。

  

它没有签出的树,所以它只是做了"服务器"理论上在集中式VCS中做 - 当你推送它时记录提交,分支等,并在你克隆或拉出时提供最新版本。