毕业论文
您现在的位置: 版本控制 >> 版本控制资源 >> 正文 >> 正文

为什么使用Git来做版本控制

来源:版本控制 时间:2022/6/30
哪里医院治疗白癜风较好 https://yyk.39.net/bj/zhuanke/89ac7.html

对于开发人员,版本控制工具是最亲密的伙伴之一。我们最早接触到的版本控制是SVN,很多人叫它小乌龟(TortoiseSVN),并发现它很强大,慢慢就习惯用它了,仿佛那桃花源的人——“问今是何世,乃不知有汉,无论魏晋”。

正如大家都熟知的,版本控制有三大流派:本地版本控制系统、集中化版本控制系统和分布式版本控制系统。

本地版本控制我们基本没用过,就不说了。

集中化版本控制多年以来,已经俨然成为版本控制系统的标准做法(见图1.1)。例如CVS、Subversion等,通过一个单一的集中管理的服务器,保存所有文件的修订版本,所有协同工作的开发人员通过客户端连到这台服务器上,取出最新的文件或提交更新。

图1.1集中化版本控制

注:上图中VCS指版本控制系统(VersionControlSystem)。

分布式版本控制,例如Git、Mercurial、Bazaar等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来(见图1.2)。

图1.2分布式版本控制系统

了解基本概念后,我们看看以下几个情景。

情景一:

开发人员大龙滚了2小时的键盘,吼出一句"Shit"。嘚瑟地伸了个大大的懒腰,开心的说“消息推送终于搞定了”,然后提交到SVN上,一身轻松地回家了。

第二天早上,大龙打开工程,执行SVN更新后,发现昨晚的代码都没了,一查SVN日志,顿时火了,原来他的代码被小虎覆盖了。嘴里嘟囔着,“为什么提交前不先更新?”,手上又把昨晚的代码重新提交了一遍,把小虎的代码又覆盖回去了,码农间协作的小船说翻就翻。

Git说:如果你用Git,提交代码时有冲突,Git根本就不会让用户覆盖他人代码,它直接驳回第二个人的提交操作。因为Git是尊重秩序的。

情景二:

大龙在开发一款App,最近刚刚发布上线。项目经理给他提了4个要求:

①主干随时可发布;

②网上问题随时需要修改合入;

③新特性同步开发;

④新idea也要预研。

大龙嘴上连连答应,心里恨不得把项目经理活活掐死。

Git说:如果你使用Git,你可以同时拥有多个开发分支,每个分支用于完成特定的任务,随着开发的推进,你可以随时把某个特性分支的成果并到其他分支中(操作简单且代价非常小,见图1.3)。

图1.3Git分支工作流程

情景三:

大龙用SVN好多年了,他发现SVN和WOW有一点非常像——到处需要读进度条。

用SVN更新需要读进度条,提交需要,看日志需要,导入需要、导出需要。

玩WOW加载需要读进度条,施法需要,上马需要,挖矿需要,采药需要……

大龙在默默地忍受着。

Git说:如果你使用Git,几乎所有操作都只需要访问本地文件,不受网络限制且处理速度飞快。

华为开发者社区

在一起创梦想

个人

转载请注明:http://www.0431gb208.com/sjslczl/754.html