📜  版本控制系统

📅  最后修改于: 2021-10-22 03:45:27             🧑  作者: Mango

什么是“版本控制系统”?

版本控制系统是一类软件工具,它通过跟踪对代码所做的修改来帮助记录对文件所做的更改。

为什么版本控制系统如此重要?

正如我们所知,软件产品是由一组开发人员协作开发的,他们可能位于不同的位置,并且每个人都贡献于某种特定类型的功能/特性。因此,为了对产品做出贡献,他们对源代码进行了修改(通过添加或删除)。版本控制系统是一种软件,可帮助开发人员团队有效地沟通和管理(跟踪)对源代码所做的所有更改以及诸如谁进行了更改和进行了哪些更改等信息。为每个做出更改的贡献者创建一个单独的分支,并且更改不会合并到原始源代码中,除非在更改为绿色信号后立即分析所有更改,表明它们已合并到主源代码中。它不仅使源代码井井有条,而且通过使开发过程顺畅来提高生产力。

版本控制系统的好处:

a)通过提供高效的协作来提高项目开发速度,

b)通过更好的沟通和协助,利用员工的生产力、加快产品交付和技能,

c)通过对每一个小变化的可追溯性,在项目开发的同时减少错误和冲突的可能性,

d)项目的员工或贡献者可以从任何地方通过此VCS 做出贡献,无论地理位置如何,
e)对于项目的每个不同贡献者,维护不同的工作副本,除非工作副本经过验证,否则不会合并到主文件中。一个最流行的例子是Git、Helix core、Microsoft TFS、

f)在发生任何灾难或突发情况时帮助恢复,

g)告知我们进行了更改的人员、内容、时间和原因。

版本控制系统的使用:

  • 存储库:可以将其视为更改的数据库。它包含项目的所有编辑和历史版本(快照)。
  • 工作副本(有时称为结帐):它是项目中所有文件的个人副本。您可以编辑此副本,而不会影响其他人的工作,并且您可以在完成更改后最终将更改提交到存储库。

版本控制系统的类型:

  • 本地版本控制系统
  • 集中版本控制系统
  • 分布式版本控制系统

本地版本控制系统:它是最简单的形式之一,并具有一个数据库,可将所有文件更改保存在修订控制之下。 RCS 是最常见的 VCS 工具之一。它将补丁集(文件之间的差异)以特殊格式保存在磁盘上。通过将所有补丁相加,它可以重新创建任何文件在任何时间点的样子。

集中版本控制系统:集中版本控制系统只包含一个存储库,每个用户都有自己的工作副本。您需要承诺在存储库中反映您的更改。其他人可以通过更新看到您的更改。

需要做两件事才能让其他人看到您的更改:

  • 你提交
  • 他们更新

cvs

CVCS(集中式版本控制系统)的好处是可以在开发人员之间进行协作,并在一定程度上了解其他人在项目中所做的事情。它允许管理员细粒度控制谁可以做什么。

它也有一些缺点,这导致了 DVS 的发展。最明显的是集中存储库表示的单点故障,如果在此期间发生协作并且无法保存版本化更改。如果中央数据库的硬盘损坏,并且没有保留适当的备份怎么办?你绝对失去了一切。

分布式版本控制系统:分布式版本控制系统包含多个存储库。每个用户都有自己的存储库和工作副本。仅提交您的更改不会让其他人访问您的更改。这是因为提交将反映本地存储库中的这些更改,您需要推送它们以使它们在中央存储库中可见。同样,当您更新时,除非您先将这些更改拉入您的存储库,否则您不会得到其他人的更改。

要让其他人看到您的更改,需要做 4 件事:

  • 你提交
  • 你推
  • 他们拉
  • 他们更新

最流行的分布式版本控制系统是 Git、Mercurial。它们帮助我们克服单点故障问题。

dvcs

版本控制的目的:

  • 多人可以同时在一个项目上工作。每个人都在处理和编辑他们自己的文件副本,当他们希望与团队的其他成员共享他们所做的更改时,由他们决定。
  • 它还使一个人可以使用多台计算机来处理一个项目,因此即使您自己工作,它也很有价值。
  • 它整合了团队不同成员同时完成的工作。在极少数情况下,当两个人对文件的同一行进行冲突编辑时,版本控制系统会请求人工协助来决定应该做什么。
  • 版本控制提供对项目历史版本的访问。这是防止计算机崩溃或数据丢失的保险。如果出现任何错误,您可以轻松回滚到以前的版本。也可以撤消特定的编辑,而不会丢失同时完成的工作。很容易知道文件的任何部分是何时、为什么以及由谁编辑的。