查看: 889|回复: 1

[分享] 你一定要了解的分布式版本控制工具(Git)

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32012
    最后登录
    2024-4-9
    发表于 2021-6-23 17:06:51 | 显示全部楼层 |阅读模式
    你一定要了解的分布式版本控制工具(Git)
    1.为什么需要版本控制系统?
    单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功能并不是单向递增的,中途可能会经过不断地优化设计与修改,而修改的过程中有时会出现误操作导致功能缺陷,当时并没有及时发现,等出问题时,这时候免不了要回过头来查找问题,定位问题最常用的办法就是查看自己曾经到底修改了哪里,此时便涉及到一个概念叫“版本控制”,显然我们需要一个工具能记录开发过程中的所有版本,并能够在需要的时候能切换到任意指定的版本。


    随著软件项目规模越来越大,多人协作开发已成为不可避免的趋势,每个成员都在本地修改,添加,删除项目里的功能,当把每个人的工作汇总起来时,麻烦就出现了,到底是改了哪些功能?功能里的哪些细节被修改了?功能的修改出现冲突怎么办?此时功能汇总合并工作便变得非常低效,汇总完成后还需要再将代码同步到每个项目成员本地。此时便涉及到另外一个概念叫“版本库”,版本库就是一个有着自定义数据结构的仓库,进入仓库的东西都按照统一结构存放着,版本库用来记录整个项目的功能是如何一步步演化的。显然版本库使得团队协同开发变得简单。


    总结一下,版本控制系统=版本库+版本管理工具。版本控制系统使得项目开发变得更加高效。

    2.版本控制系统Git由来
    版本控制系统有很多,比如CVS、SVN、Mercurial、Git,其中Git是一个概念非常先进的完全分布式版本控制系统。


    Git诞生2005年,其创始人叫Linus Torvalds,什么?没听到这位仁兄?如果你知道Linux系统的话,没错,这位仁兄也是Linux内核发明人。


    Git设计的初衷是为了管理Linux系统源码,Linus于1991年创建了开源的Linux,世界各地Linux社区的人都在为Linux编写代码,那Linux的代码是如何管理的呢?实际上,在2002年之前,Linux代码合并工作完全是Linus手工完成的。到了2002年,Linux代码库之大让Linus很难继续通过手工方式管理了,Linus迫于压力只得选择一款叫BitKeeper的商业版本控制系统,到了2005年,Linux社区有人试图破解BitKeeper协议,但被BitMover公司及时发现了,BitMover一怒之下收回了Linux社区使用权。于是Linus花了两周时间用C写了一个分布式版本控制系统,这便是Git!之后一个月,Linux系统的源码开始由Git管理了!


    自那以后,Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

    3.Git主要有哪些特点?
    Git是一款免费的、开源的、分布式的版本控制系统。Git主要有以下4大特点:
    1. 速度极快:Git在本地保存着所有当前项目的历史更新,所以处理起来速度飞快。
    2. 省心可靠:Git可以时刻保持数据完整性,多数操作仅是添加数据,一旦提交快照之后就完全不用担心丢失数据。
    3. 离线工作:Git近乎所有操作都是本地执行,绝大多数操作都只需要访问本地文件和资源,不用连网。
    4. 资源丰富:越来越多的公司,开源项目使用Git,包括Ruby On Rails,jQuery,Perl,Debian,Linux Kernel等等。拥有一个强大的社区是很大的优势,有很多教程、工具。
    复制代码
    4.三种常见的Git开发流程
    Git是分布式管理方式,它与集中式管理方式最大的区别是Git支持本地提交,因为每个开发者本地都有服务器的完整数据库。当需要将本地提交同步到公共服务器上的数据库时,就出现了以下三种开发模式来规范这种同步行为。


    第一种模式叫平等合作模式,这种模式下没有明确的项目负责人,每个人对项目的控制权平等。每个开发都可以对项目进行任意修改。
    21.png
    第二种模式叫经典开发模式,这种模式下明确了一个项目负责人,由这个负责人汇总所有开发人员的提交,并负责对项目进行统一修改。
    22.png
    第三种模式叫超大项目模式,这种模式下有二级经典开发模式,即将项目分成多个子模块,每个子模块均有自己的公共服务器,每个子模块的开发使用经典开发模式,而子模块的汇总也是经典开发模式。
    23.png
    Git的世界还有很多好玩的东西,具体我们下篇再说。











    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-6-24 10:13:25 | 显示全部楼层
    这个文章还是非常建议职场新人仔细阅读,并自行查找更多资料。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-23 15:23 , Processed in 0.117898 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表