Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 使用中央存储库与GIT';你的目的是什么?_Svn_Git_Dvcs - Fatal编程技术网

Svn 使用中央存储库与GIT';你的目的是什么?

Svn 使用中央存储库与GIT';你的目的是什么?,svn,git,dvcs,Svn,Git,Dvcs,如果您所在的公司环境中有许多人在处理特定的应用程序,那么拥有一个正式的中央存储库是否违背了系统的基本原则 有时我很难理解分布式版本控制系统的概念,比如在公司环境中。如果您没有一个中央存储库,那么找出谁拥有最新的更新版本、谁拥有每个人都需要获取的功能x或bug修复y,等等,这难道不是一个PITA吗 如果以类似的方式使用它,使用每个人都可以从中推/拉的中央存储库,这是否违背了使用它的目的?每一次我想这样做的时候,我都觉得我错过了每件事的要点 有人能给我点化一下吗?不太好。DCV只允许开发人员在不涉及

如果您所在的公司环境中有许多人在处理特定的应用程序,那么拥有一个正式的中央存储库是否违背了系统的基本原则

有时我很难理解分布式版本控制系统的概念,比如在公司环境中。如果您没有一个中央存储库,那么找出谁拥有最新的更新版本、谁拥有每个人都需要获取的功能x或bug修复y,等等,这难道不是一个PITA吗

如果以类似的方式使用它,使用每个人都可以从中推/拉的中央存储库,这是否违背了使用它的目的?每一次我想这样做的时候,我都觉得我错过了每件事的要点


有人能给我点化一下吗?

不太好。DCV只允许开发人员在不涉及中央存储库的情况下更自由地进行交互。官方存储库仅是一致同意的官方存储库。Linux也有一个中央存储库,即创建“官方”内核版本的存储库,但是中央“官方”存储库和客户端存储库之间没有物理上的区别,因为它位于中央VCS中。

如果您选中此项,(幻灯片475及以下),Git完全支持中央存储库模型

您可以强制任何希望
git push
其开发的人首先进行
git fetch+git merge
,然后进行push

这丝毫不会违背Git的目的,并确保每个人都彼此“同步”

与Linus的“官方”存储库的不同之处在于,它由不同的工作流管理,即“独裁者和中尉”模型,其中写入访问(push)仅授予Linus,读取权限授予任何人

现在:“这是否违背了DVC的观点”

不,您仍然有分布式存储库,每个开发人员一个,他们可以根据自己的内部团队工作流程在自己的存储库之间获取/合并。

但是,如果他们想为中央回购做出贡献,他们必须首先了解该存储库的最新历史。

对于分布式源代码管理,中央“官方”存储库是根据策略而不是源代码管理工具体系结构建立的。

像Git这样的DVC不会强迫您使用中央存储库。当然,可以将一个存储库声明为“中央”或“官方”或其他任何形式,在公司环境中,中央存储库是有意义的,如果不是为了开发,那么至少是为了备份。

绝对不会违背Git的目的

使用Git或任何其他DVC的优势在于,即使有一个中央的、官方的存储库,源代码控制仍然是分散的。也就是说,您可以获取存储库的副本,处理代码,并在需要时每隔几分钟进行一次本地提交。您不必担心提交是在破坏构建的半成品代码上进行的,它都是本地的。(而且非常快。)

然后,当所有的工作完成后,您可以清理历史记录,并将完成的更改以一致、干净的状态推送到中央存储库


我不认为你可以低估将“私人”提交和“公共”推送分开的好处。它允许跟踪更改,即使您是唯一一个受益于这种小粒度的人。

您可能会按照此图的思路思考:

这可能看起来像是来自CVCS的混乱。“我们需要一些订单”,我听到你说

如果您没有一个中央存储库,那么找出谁拥有最新的更新版本、谁拥有每个人都需要获取的功能x或bug修复y,等等,这难道不是一个PITA吗

对。与CVCS不同,它没有真正的“最新版本”。如果没有中心位置,你就不知道是要看Sue、Joe还是Eve的最新版本。中心位置有助于澄清什么是最新的“稳定”版本

有点像这样:

还值得注意的是,根据组织内人员群体的职责,可能存在多个感知的中央存储库

设想一个管理多个开发团队的项目经理,每个团队可能都有一个“中心”存储库,供他们使用。每周,项目经理可能会将每个团队的更改拉入他的“中心”存储库,合并它们并将它们推回到团队的“中心”存储库中

这可能不是一个很好的例子(我仍然在思考这一切),但这只是一个项目经理。再加上几个项目/经理和QA团队,你就会明白我的来历了

--

  • 图表和一段文字由

DVCS的一个主要好处是,您可以从“官方”存储库获取最新版本,然后大胆使用它。您可以在本地提交更改并随意回滚。这也意味着您甚至可以在不访问中央repositoy的情况下工作,并且仍然可以享受源代码控制的好处


我认为有点纪律性,这个模型运行得很好。很好地解释了你可以采用的各种模式

共识…或政策,但是,是的,你在这里强调了关键点。我知道以这种方式使用它是可能的,但我应该吗?“当你只有一把锤子时,一切看起来都像钉子。”诸如此类。。我是否错过了DVC的全部要点?DVC没有中央存储库。或者,对于DVCS,每个存储库都是中心的。选择。或者不要。这都是你的选择。:)我认为这并不能真正回答这个问题:)他不是问你是否可以,只是问你是否应该。我想答案是“是的”。嗯,是的,当你在白纸黑字地思考时,只有你能