远程和集中式存储库在git中是一回事吗?

时间:2015-05-29 14:52:33

标签: git github bitbucket

它们似乎是同义词,但我还不能说清楚。

基于Subversion与DVCS的争论here

4 个答案:

答案 0 :(得分:5)

可能。

远程存储库是git的一个基本功能(尽管你可以在没有远程的情况下使用git)。 "中部"存储库是项目组织的问题。

远程git存储库是除本地存储库之外的任何存储库;您可以从本地仓库中推送,拉取和取出它。

如果您有许多开发人员正在处理某个项目,那么每个开发人员都将拥有自己的本地存储库,并且您可能拥有一个单独的" central"每个开发人员可以推送和存储的存储库。这可以为您提供非分布式DCVS的优势,同时仍让每个开发人员进行本地更改。 "中心"然后,repository是每个开发人员的远程存储库。 (它需要是一个"裸"回购,因为你无法推动非裸机回购。)

使用中央存储库,您可以拥有一个定义项目当前状态的确定位置。其他组织是可能的;例如,开发人员可以通过发送彼此拉取请求来共享更改。

答案 1 :(得分:1)

没有

远程存储库可以是您的朋友计算机,您从中获取代码,而中央存储库是每个人将代码推送到的位置。

中央存储库用于备份,构建,权限等 您可以拥有一个或多个远程仓库(例如,如果您的团队不使用中央存储库,而您只需将其中一个直接连接到另一个(ip)

答案 2 :(得分:1)

中央存储库计划要求每个人都从一个来源获取更新,而DVCS没有这个限制。

这些术语很容易混淆,因为大多数工作流程都要求每个协作者都有一个远程存储库来完成他们的工作。

但是,远程存储库只不过是另一台可以放置Git历史记录的计算机。在实践中,您可以拥有大量的遥控器,并且可以随意与他们互动。

答案 3 :(得分:1)

经常足够 - 而且往往足够多 - 一个"遥控器" repo只是你的另一个,位于原始克隆旁边的路径中,或者它位于tmpfs上,依赖于另一个用于对象内容或其他内容。是的,您可以推送到一个正常工作的仓库,这对于并行处理并行分支的某些工作流程至关重要。这是推送修补程序分支的好方法。

git repo承担其管理员希望拥有的任何角色(团队合作,但这是一个单独的问题......)。如果您想要一个中央回购,请制作一个回购并告诉所有人"中央"。

我听说有些项目有不同目的的多个回购,一个qa回购,其中qa团队测试分支并且合并并测试他们的结果并拒绝提交返工或推送到老化/稳定回购之前任何命中生产

Linux有一大批专门用于测试功能的回购正在被攻击,各种管理员拉出看起来不错的东西 - 这些回购是由任何想要启动项目的人设置的。如果您拥有一个足够大的团队,这可能是一个很棒的方式来获得项目的协作,那么预期的用户可能会对需要帮助的人产生足够的兴趣。这是让感兴趣的帮助者修复alpha代码中不可避免的白痴疏忽或通过实现它们来展示新功能优先级的完美方式(或者至少是概念验证)。

如果对单独的工作线路进行多次回购并不好,那么dvcs将无法接管世界。为什么坚持每个回购都有一个单独的人?分支机构用于合并准备和小东西勘探。克隆用于项目工作和主要手术沙盒和噪音隔离,只是用可能有用的东西打屁股,但你很可能想要这个该死的东西。如果你能在一个回购中方便地完成这一切,那就太棒了。如果您可以方便地使用多个 more ,请改为使用。