第 12 章 存储库管理 存储库管理
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本章介绍如何发布 Git 仓库,并介绍管理和发布合作开发仓库的方法。本章以讨论为主,汇集了管理 Git 仓库时可能采用的各种思路。
首先,我们将介绍如何设置和配置自己的 Git 服务器,并通过可用协议公开对已发布仓库的访问。接下来,我们将讨论根据开发需要构建集中或分布式访问版本库的可能方式。随后,我们将分享一些经验法则,供您在使用 Git 仓库进行开发时参考。在此基础上,我们将介绍了解开发人员可能扮演的角色的重要性,主要是开发人员与维护人员关系中存在的角色双重性。我们还讨论了在需要使用多个分布式版本库时可以利用的技术,并在本章的最后分享了有关版本库分叉概念的一些背景知识。
发布存储库
无论你是要建立一个开放源代码开发 环境,让互联网上的许多人都能开发一个项目,还是要建立一个项目,供私人小组内部开发,协作的机制本质上都是一样的。这两种情况的主要区别在于资源库的位置以及谁可以访问它。
备注
在 Git 中,提交权限这个词有点名不副实 。Git 并不试图管理访问权限,而是把它留给了其他工具,比如 SSH,它们更适合这项任务。只要你能通过 SSH 和cd访问(Unix)任何版本库,或者有直接的 rwx 模式访问权限,你就能在任何版本库中提交。
这个概念可以更好地理解为 "我能更新已发布的版本库吗?从这个表述中可以看出,问题实际上是 "我能否将更改推送到已发布的版本库?
在"引用远程仓库 "一文中,我们提醒过你不要使用远程仓库 URL/path/to/repo.git的形式,因为它可能会表现出使用共享文件的仓库所特有的问题。不过,如果要建立一个包含多个类似版本库的公共仓库,就需要使用共享的底层对象存储。在这种情况下,你会希望存储库的大小单调增长,而不会从中删除对象和引用。这种情况下,许多存储库可以大规模共享对象存储,从而节省大量磁盘空间。为节省空间,可考虑使用 --reference repository选项、--local 选项或--shared 选项。
在任何情况下,我们都强烈建议您发布一个裸仓库。
访问受控的存储库
对于您的项目来说,在组织内文件系统的已知位置发布 一个人人都能访问的裸仓库可能就足够了。
当然,这种情况下的访问是指所有开发人员都能看到他们机器上的文件系统,并拥有传统的 Unix(或类 Unix 系统)所有权和读写权限。在这些情况下,使用诸如/path/to/Depot/project.git或file://path/to/Depot/project.git这样的文件名 URL 可能就足够了。虽然性能可能不太理想,但 NFS 挂载的1文件系统可以提供这种共享支持。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access