浮生逆旅

什么是 Git?

字数统计: 809阅读时长: 2 min
2019/11/06 Share

什么是 Git ?

Git 是一个分布式版本控制系统。是 Linus 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。现今来说,Git 是目前世界上使用最广泛的,最受欢迎的版本控制系统,更是最好的分布式版本控制系统。

什么是版本控制?

个人理解的版本控制,是软件开发的基石,是我们走向目的地的里程碑。通过版本控制,可以让我们的代码可追溯。

举个例子:服务上线更新功能时,服务挂掉了,显然是因为这次的代码挂掉的 此时我们可以将系统会滚到上个版本,让系统继续服务 此次上线失败,将本次修改的代码进行 bug 修复,进行事故总结。这时如果没有版本控制,会造成什么后果,我们可想而知

什么是集中式版本控制?什么是分布式版本控制?

上面说到 Git 是分布式版本控制系统,既然有分布式版本控制自然就有集中式版本控制,最初为了解决开发者协同工作的问题,集中化的版本控制系统应运而生,选择一个单一的集中管理的服务器,保存所有文件的修订版本,协同工作者统一通过客户端连接到这台服务器,进行代码更新提交以及获取其他协同工作者的代码。


集中化的版本控制图解


那为什么有了集中式版本控制,在后来又有了分布式版本控制?

相信在早些年间 SVN(举例) 诞生之际,它也没有给自己贴上集中式版本控制这一标签或分类,而如今的版本控制划分为集中式版本控制和分布式版本控制两大类 我们可以找一下集中式版本控制的痛点

  • 必须在连网环境下 如果我们的原则是对代码的每个更新、修改都为一个不可分割的最小单元 若因无法联网,那我们可能选择为了继续开发而违背这一原则

  • 数据孤岛 因为只有一台中央服务器进行代码的管理,若中央服务器发生故障,数据丢失 那我们的项目,变更历史都将消失,仅剩的只有在我们开发人员 PC 上的单独快照,就像上面说到的,我们失去了里程碑

基于以上的问题,分布式版本控制面世了。

我们使用 Git 所获取的不只是最新版本的代码快照,而是整个的代码仓储,从拉取仓储的命令就可以说明这一点 git clone: Clone a repository into a new directory

这样,我们就可以在 PC 上直接进行版本控制 而同一根源的仓储之间可以进行代码的拉取、推送、合并(前提是解决端与端之间的通讯问题) 根据需要设定不同的协作流程

分布式版本控制图解



以上,就是个人对 Git 的理解

拜~


CATALOG
  1. 1. 什么是 Git ?
    1. 1.1. 什么是版本控制?
    2. 1.2. 什么是集中式版本控制?什么是分布式版本控制?