邂逅Git

Git版本控制工具详解

邂逅版本控制工具
认识版本控制 (版本控制)
  • 什么是版本控制?
    • 版本控制的英文是Version control;
    • 是维护工程蓝图的标准做法, 能追踪工程蓝图从诞生一直到定案的过程;
    • 版本控制也是一种软件工程技巧, 借此能在软件开发的过程中, 确保由不同人所编辑的同一程序文件都得到同步;
  • 简单来说, 版本控制在软件开发中, 可以帮助程序员进行代码的跟踪, 维护, 控制等等一系列的操作.

在这里插入图片描述

版本控制的功能
  • 对于我们日常开发, 我们常常面临如下一些问题, 通过版本控制可以很好的解决:
  • 不同版本的存储管理:
    • 一个项目会不断进行版本的迭代, 来修复之前的一些问题, 增加新的功能, 需求, 甚至包括项目的重构
    • 如果我们通过手动来维护一系列的项目备份, 简直是一场噩梦;
  • 重大版本的备份维护:
    • 对于很多重大的版本, 我们会进行备份管理;
  • 恢复之前的项目版本:
    • 当我们开发过程中发生一些严重的问题, 想要恢复之前的操作或者回到之前的版本;
  • 记录项目的点点滴滴:
    • 如果我们每一个功能的修改, bug的修复, 新的需求更改都需要记录下来, 版本控制可以很好的解决;
  • 多人开发的代码合并:
    • 项目中通常都是多人开发, 将多人代码进行合并, 并且在出现冲突时更好的处理
版本控制的历史
  • 版本控制的史前时代 (没有版本控制) :
    • 人们通常通过文件备份的方式来进行管理, 再通过diff命令来对比两个文件的差异;
  • CVS (Concurrent Versions System)
    • 第一个被大规模使用的版本控制工具, 诞生于 1985 年;
    • 由荷兰阿姆斯特丹VU大学的Dick Grune教授实现的, 也算是SVN的前身 (SVN的出现就是为了取代CVS的)
  • SVN (Subversion)
    • 因其命令行工具名为svn因此通常被简称为SVN;
    • SVN由CollabNet公司于2000年资助并发起开发, 目的是取代CVS, 对CVS进行了很多的优化;
    • SVN和CVS一样, 也属于集中式版本控制工具;
    • SVN再早期公司开发中使用率非常高, 但是目前已经被Git取代;
  • Git (Linus的作品)
    • 早期的时候, Linux社区使用的是BitKeeper来进行版本的控制
    • 但是因为一些原因, BitKeeper想要收回对linux社区的免费授权
    • 于是Linus用了大概一周的事件, 开发了Git用来取代BitKeeper;
    • Linus完成了Git的核心设计, 在之后Linus功成身退, 将Git交由另外一个Git的主要贡献者Junio C Hamano 来维护
集中式和分布式区别
集中式版本控制
  • CVS和SVN都是属于集中式版本控制系统 (Centralized Version Control Systems, 简称CVCS)
    • 它们的主要特点是单一的集中管理的服务器, 保存所有的文件的修订版本
    • 协同开发人员通过客户端连接到这台服务器, 取出最新的文件或者提交更新.
  • 这个做法带来了许多好处, 特别是相较于老式的本地管理来说, 每个人都可以在一定程度上看到项目中的其他人正在做什么?
  • 但是集中式版本控制也有一个核心的问题: 中央服务器不能出现故障:
    • 如果宕机, 那么在宕机期间, 谁都无法提交更新, 也就无法协同工作.
    • 如果中心数据库所在的磁盘发生损坏, 又没有做恰当备份, 毫无疑问你将丢失所有数据
      ![[Pasted image 20240531143239.png]]
分布式版本控制
  • Git是属于分布式版本控制系统 (Distributed Version Control System), 简称 (DVCS)
    • 客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来, 包括完整的历史记录
    • 这么依赖, 任何一处协同工作用的服务器发生故障, 事后都可以用任何一个镜像出来的本地仓库恢复;
    • 因为每一次的克隆操作, 实际上都是依次对代码仓库的完整备份
  • 目前在公司开发中我们都是使用Git来管理项目的, 所以接下来我们会重点学习Git的各种用法
    ![[Pasted image 20240531150644.png]]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值