我的个人博客地址:damienzhong.com 原文链接:点击打开链接 (完整版请进入原文链接查看)

1.1 背景

数据是短暂的,且容易丢失的,特别是作为开发人员的我们每天频繁的对项目代码进行更新,容易产生错误代码的变更或者项目文件的丢失,所以我们需要在整个工作过程中不断的备份和存档我们的文档和项目文件。

在当下的项目开发环境下,一个项目往往是有多个开发者共同开发维护的,那么意味着他们需要操作同一项目文件,我们需要对文本和项目代码的变更进行记录管理,这些变更就构成了一个版本库,对版本库的管理就是版本控制。

一个可以管理或追踪软件代码的工具通常称为版本控制系统(VCS)。现在流行的版本控制工具很多,当然,我们接下来要说的就是称的上VCS界一哥的Git,它是一款功能强大、灵活且低开销的VCS,它可以让协同开发成为一种乐趣。

1.2 Git的诞生

其实,在Git诞生之前市面上已经有非常多的VCS了,比如当时VCS界的老大哥:SVN(现在在市面上也还有不小的份额)。那为什么还要创造Git这个新工具呢?

这当然得从他的创始人Linus Torvalds说起 ,一个在技术界被千万人顶礼膜拜的男人!为了方便管理Linux内核的开发工作,一个可靠的值得信赖的VCS是不可或缺的,但是,Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

集中式版本控制系统

版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

分布式版本控制系统

首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

当然,Git的优势不单是不必联网这么简单,后面我们还会看到Git极其强大的分支管理,把SVN等远远抛在了后面。

好,回到我们的故事,当时Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。然而,好景不长,Linus那些牛人不甘寂寞,试图破解BitKeeper的协议,被BitMover公司发现了,于是BitMover公司不干了,要收回Linux社区的免费使用权。Linus知道之后向人家道了个歉,但是人家肯定不会再免费提供给他们使用了,那咋办呢?Linus大神于是小小的发了一下力,花了两周的时间,用C写出了Git,一个月之内,Linux系统的源码已经由Git管理了。除了说牛逼,我们还能说什么呢?

如今,Git已经在大量的项目中得到了非常成功的应用,成为了目前世界上最先进的分布式版本控制系统(没有之一)。

Git版本控制管理教程(一):介绍相关推荐

  1. java中git版本控制,git版本控制管理是什么?git如何实现版本控制?

    大家好,今天要跟大家讲的是关于git版本控制管理的一点小知识,git相信程序员小伙伴们都已经很熟悉了,很多项目开发都需要git,所以,git版本控制管理到底是干嘛的呢?Git又如何实现版本控制呢?下面 ...

  2. 《Git版本控制管理(第2版)》——4.3 Git在工作时的概念

    本节书摘来自异步社区<Git版本控制管理(第2版)>一书中的第4章,第4.3节,作者:[美]Jon Loeliger , Matthew McCullough著,更多章节内容可以访问云栖社 ...

  3. 【Git版本控制管理】Gitee(码云)和GitHub的使用

    远程仓库的使用 文章目录 远程仓库的使用 使用码云(Gitee) 使用GitHub 远程仓库是指托管在因特网或其他网络中的你的项目的版本库. 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读 ...

  4. Ubuntu系统下Git版本控制使用教程|1-6

    文章目录 使用git对代码进行版本控制 git的三个工作区和工作流程 git的本地基本操作 如何安装git 如何配置git 使用git对本地代码进行版本控制 使用git同时管理本地和远程代码 git高 ...

  5. git branch 为什么会进入编辑状态_最好的Git分支管理教程

    Git最难学习的就是Git的多分支问题,不同操作会对当前分支造成什么影响,比如相同初始状态,类似操作,rebase和merge的不同结果. rebase(左),merge(右) 教程简介 推荐一个非常 ...

  6. git 改local branch名字_最好的Git分支管理教程

    Git最难学习的就是Git的多分支问题,不同操作会对当前分支造成什么影响,比如相同初始状态,类似操作,rebase和merge的不同结果. rebase(左),merge(右) 教程简介 推荐一个非常 ...

  7. git branch看不到分支_最好的Git分支管理教程

    Git最难学习的就是Git的多分支问题,不同操作会对当前分支造成什么影响,比如相同初始状态,类似操作,rebase和merge的不同结果. rebase(左),merge(右) 教程简介 推荐一个非常 ...

  8. Git 版本控制管理(一)

    Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git  -- The stupid content tracker(傻瓜式的内容跟踪器) 关于 Git 的 ...

  9. 3.git版本控制-管理修改、撤销、删除

    管理修改 第一次修改 -> git add -> 第二次修改 -> git commit,Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交, ...

  10. Git版本控制管理——Git和GitHub

    之前已经对Git和Git的相干命令操作等做了简单地说明.但同时既然提到Git,就一定会提到GitHub. GitHub可以认为是一个代码托管平台,用户可以使用其来对自己的版本库进行管理,同时也可以参考 ...

最新文章

  1. 作业4(列表增加或者修改)
  2. boost::hana::pair_tag用法的测试程序
  3. java html中引入视频的格式_怎么在HTML网页中插入视频
  4. sqlite3 改源代码支持上下键查询历史命令
  5. 为决战5G时代,小米出手一点不含糊,接连招揽牛人,这次是曾学忠
  6. 1027:输出浮点数
  7. matlab simulink笔记02——延迟模块delay与单位延迟模块unit delay
  8. PHP curl 参数详解
  9. 关于通过webclient和JSON格式报文与服务器之间通讯的解决方法和遇到的难题
  10. 哪些NPM仓库更易遭供应链攻击?研究员给出了预测指标
  11. DE23 Use with Impulse Inputs
  12. Spring事务@Transactional注解原理
  13. 项目管理ITTO(一张图梳理49个过程)
  14. Freenom免费域名申请
  15. 怎么录制游戏视频,哪个电脑录屏软件好用?
  16. 新手怎么画思维导图,这里有一份详细的思维导图绘制教程
  17. 如何关闭 window10 自带的杀毒软件
  18. cass怎么添加指北针图例_答疑|CASS怎么添加图例?
  19. 系统体系结构-概念和框架
  20. web前端学习(四):基于koa的EggJs框架,优雅而又完美的Nodejs框架

热门文章

  1. 中兴笔试题:打家劫舍【动态规划】
  2. user reg.php,织梦member/reg_new.php SQL注入漏洞修复
  3. mysql报错无效默认值1067_Mysql 报错:#1067
  4. NSAT-3030 数字万用表自动计量系统
  5. Timesten Classic 18.1 建立缓存组
  6. 做一个网站要多少钱?
  7. PS在园林计算机辅助设计中有哪些应用,风景园林计算机辅助设计(谷永丽)(第2版)...
  8. 【新书速递】CSO进阶之路首次曝光
  9. CI框架工作原理浅析
  10. DEA模型及matlab应用2:超效率SE-DEA模型