Git中裸共享仓库的概念

9

我在理解裸仓库方面遇到了困难。我到处都看到说共享仓库是一个裸仓库。为什么它必须是裸仓库?不能是普通的仓库,协作者可以克隆然后推送/拉取吗?


可能是什么是裸库和非裸库之间的实际区别?的重复问题。 - Ciro Santilli OurBigBook.com
1个回答

5
它需要是一个裸仓库,因为非裸仓库会有一个工作树(意味着该仓库的特定版本已检出并且文件可见)。
每次将内容推送到非裸仓库时,您无法保证其工作树将反映您正在推送的内容,因为默认情况下该工作树将不受影响。
(想象一下,如果推送会触发工作树的更新:文件将突然更改,而接收端用户没有任何控制权)
这就是为什么将裸仓库作为上游仓库(您要推送到的仓库)更简单:无需管理/更新工作树。
请参见“关于“bare”仓库的全部内容--什么,为什么以及如何修复非裸推送”。
它没有一个已检出的树,所以它只是在你向它推送时记录提交、分支等,当你从它克隆或拉取时给你最新的版本。

请问您能否解释一下这个问题吗?“每次您将内容推送到非裸仓库时,由于默认情况下该工作树不会被修改,因此无法保证其工作树反映您正在推送的内容。” - user2636464
@user2636464 当您推送新的提交时,当前检出的文件不会更改。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接