📜  Git版本控制系统

📅  最后修改于: 2020-12-13 13:44:42             🧑  作者: Mango

Git版本控制系统

版本控制系统是一种软件,该软件可以跟踪一段时间内对一个文件或一组文件的更改,以便您以后可以调用特定的版本。它还允许您与其他程序员一起工作。

版本控制系统是一组软件工具,可帮助团队管理源代码中的更改。它使用一种特殊的数据库来跟踪对代码的每次修改。

开发人员可以将早期版本的代码与早期版本的代码进行比较,以解决错误。

版本控制系统的好处

版本控制系统对软件开发非常有帮助和有益;在不使用版本控制的情况下开发软件是不安全的。它提供了不确定性的备份。版本控制系统为开发人员提供了快速的界面。它还允许软件团队根据团队规模(包括更多开发人员)保留效率和敏捷性。

拥有版本控制系统的一些关键优势如下。

  • 完整的文件更改历史记录
  • 同时工作
  • 分支与合并
  • 可追溯性

版本控制系统的类型

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

本地化版本控制系统

本地化版本控制方法由于其简单性而成为常用方法。但是这种方法导致更高的错误机会。用这种方法,您可能会忘记您所在的目录,并意外地将其写入错误的文件或将其复制到不需要的文件中。

为了解决此问题,程序员开发了具有简单数据库的本地VCS。这样的数据库将所有对文件的更改都保留在修订控制下。本地版本控制系统保留文件的本地副本。

本地VCS的主要缺点是它具有单点故障。

集中版本控制系统

开发人员需要与其他系统上的其他开发人员进行协作。在这种情况下,本地化版本控制系统失败。为了解决这个问题,开发了集中版本控制系统。

这些系统具有包含版本文件的单个服务器,以及一些用于从中央位置检出文件的客户端。

集中式版本控制系统具有许多优点,尤其是相对于本地VCS。

  • 系统上的每个人都具有有关其他人在项目上正在进行的工作的信息。
  • 管理员可以控制其他开发人员。
  • 使用集中式版本控制系统比本地化版本控制系统更容易。
  • 本地版本控制系统通过服务器软件组件来促进工作,该服务器软件组件存储和管理文件的不同版本。

它也具有与本地版本控制系统相同的缺点,即它也具有单点故障。

分布式版本控制系统

集中式版本控制系统使用中央服务器来存储所有数据库和团队协作。但是由于单点故障(这意味着中央服务器出现故障),开发人员不喜欢它。接下来,开发分布式版本控制系统。

在分布式版本控制系统(例如Git,Mercurial,Bazaar或Darcs)中,用户具有存储库的本地副本。因此,客户端不仅可以签出文件的最新快照,甚至可以完全镜像存储库。本地存储库包含主存储库中存在的所有文件和元数据。

DVCS允许自动管理分支和合并。除了推动和拉动,它可以加快大多数操作的速度。 DVCS增强了脱机工作能力,并且不依赖单个位置进行备份。如果任何服务器停止并且其他系统正在通过它进行协作,则该服务器可以恢复任何客户端存储库。每次签出都是所有数据的完整备份。

这些系统不必依赖中央服务器来存储项目文件的所有版本。

集中版本控制系统与分布式版本控制系统的区别

集中式版本控制系统是使用客户端/服务器体系结构的系统。在集中式版本控制系统中,一个或多个客户端系统直接连接到中央服务器。相反,分布式版本控制系统是使用对等体系结构的系统。

同时使用版本控制系统有很多优点和缺点。让我们看一下集中式和分布式版本控制系统之间的一些重要区别。

Centralized Version Control System Distributed Version Control System
In CVCS, The repository is placed at one place and delivers information to many clients. In DVCS, Every user has a local copy of the repository in place of the central repository on the server-side.
It is based on the client-server approach. It is based on the client-server approach.
It is the most straightforward system based on the concept of the central repository. It is flexible and has emerged with the concept that everyone has their repository.
In CVCS, the server provides the latest code to all the clients across the globe. In DVCS, every user can check out the snapshot of the code, and they can fully mirror the central repository.
CVCS is easy to administrate and has additional control over users and access by its server from one place. DVCS is fast comparing to CVCS as you don’t have to interact with the central server for every command.
The popular tools of CVCS are SVN (Subversion) and CVS. The popular tools of DVCS are Git and Mercurial.
CVCS is easy to understand for beginners. DVCS has some complex process for beginners.
If the server fails, No system can access data from another system. if any server fails and other systems were collaborating via it, that server can restore any of the client repositories