【问题标题】:Does GIT always dependent on local repositories among collaboratorsGIT 是否总是依赖于协作者之间的本地存储库
【发布时间】:2016-02-23 16:41:17
【问题描述】:

朋友 我们正在一个小型组织中将 svn 迁移到 GIT。据我了解,对于团队协作,我们需要执行以下操作。 1)在服务器中创建一个裸存储库(repos.git 文件夹不会有工作副本意味着没有源代码)。会记录推送详情。

2) 在开发者 1 的机器上创建一个本地仓库,将源代码放在那里,然后通过指向裸仓库 url 提交并推送它。我的服务器机器上仍然没有可用的源。

3) 开发人员 2 将克隆这个裸存储库并提取源代码。开发人员 2 将从开发人员 1 的机器获取源文件,对吗?不是从服务器?因为服务器只包含一个裸仓库。如果开发者1的机器离线怎么办? GIT 是否总是依赖于协作者机器之间的本地存储库?

【问题讨论】:

  • 1) 是的。 2) 是的。 3) No. FUNDAMENTAL DIFFERENCE:SVN是一个“VCS”(版本控制系统)。 Git 是一个“DVCS”(分布式 版本控制系统)。这就是为什么这是一个重要的区别:blog.teamtreehouse.com/…

标签: git svn github


【解决方案1】:

不,开发人员 1 和开发人员 2 的机器之间从来没有直接通信。服务器/客户端模型类似于其他版本控制系统:每个开发人员分别与服务器对话。 在第 2 阶段之后,源应该在服务器上,因为开发人员 1 将它推到了那里。所以当开发者2拉取存储库时,他应该得到源代码。

【讨论】:

  • 谢谢约翰...事实上我从另一个线程得到了答案,我将对其进行测试。信息在这里stackoverflow.com/questions/12358451/…。
  • 嗯,开发人员 1 和开发人员 2 的机器之间可以直接通信。但这不是自动的。没有什么可以阻止两个开发人员直接共享提交,完全绕过“服务器”(尽管可能需要一些设置)。
  • @Navas Abdul Karim:两个重点:1)Git 是DVCS。所以 - 与 SVN 不同 - 您不需要连接到“服务器”来查看历史记录、更新源等。2).git 文件夹下的文件都是"objects"。它们组成了“git 数据库”。您必须使用 git clone 之类的命令来访问底层源文件。
猜你喜欢
  • 2020-12-31
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2013-12-06
  • 2021-03-10
  • 2011-05-30
  • 2012-08-09
相关资源
最近更新 更多