Git 简介
版本控制
什么是版本控制?
我需要版本控制吗?
…
如果你还没使用过版本控制系统,或许你会有以上疑问,甚至更多疑问。希望后面的回答能让你喜欢上版本控制系统,喜欢上Git。
什么是版本控制:顾名思义,版本控制就是一管理我们文件版本的软件系统。同一份文件中会有不同的版本,编辑者会根据需求对新版本文件添加(修改、删除)内容等。
当你对文件修改一段时间后,你突然改变注意,想返回前面的版本中(或者是策划要求你这么做)。如果你没有保存以前的版本怎么办?是不是很蛋疼。也许你会想着每次修改都另存为一个新版本,如果是开发时间很长,你还会记得哪个版本修改了哪些内容?一大堆的XX1、XX2、XX3…看着一大推这样的文件名,你会整个人都懵了。
最典型的例子就是,也许你写毕业论文的时候就有过类似的经历,毕业论文1、毕业论文2…毕业论文最终版,毕业论文最终版1….知道论文提交哪天还继续修改。更糟糕的是,电脑硬盘坏了,我的天啊,要崩溃了,我要狗带…这样是不是很痛苦?
没错,版本控制系统就能帮你解决这些问题的烦恼。版本控制系统能帮你管理文件的(版本)修改。
集中式版本控制系统

如上图所示,有一个专门用于管理版本的服务器,保存所有的文件修订版本及相关信息记录,例如时间、提交者等。用户每一次对文件做了修改后,可以先Server提交新版本,方便管理。如果用户对想回到前面提交的某个版本,可以从Server回滚到想要的版本。这大大方便了用户的工作。
不同的Client直接跟Server交互工作,提交、克隆等操作。不同Client之间是相互独立的。
优点:
1) 在一定程度上,同一个项目允许多人同时工作;
2) 管理员方便管理权限。
…
缺点:
1) 服务器发生故障后,项目组的协同工作无法进行,且项目的历史记录丢失;
2) 为了保存修改的内容,client需要频繁跟server交互,如果不是局域网,交互速度严重受影响。
…
分布式版本控制系统:

对于分布式版本控制系统,每个用户中都有自己在本地的仓库用来管理版本控制,每个客户端也同时是一个服务器。同时也可以用一个专门的服务器的仓库用来管理。
分布式版本控制系统的不同用户之间,只要是在同一个局域网都是想通的,入上图所示。所以某一个用户协同工作的服务器发生故障,并不会影响到整个团队。
与集中式版本控制系统相比:
1) 分布式版本控制系统更安全,因为每个客户端都是一个服务器,拥有一个完整地版本库,包括所有的历史记录等;
2) 工作效率会更高,因为对于小的修改,用户可以先把新版本的文件提交到本地的仓库,本地提交的速度远远快于“远程”提交;
3) 如果是在同一个局域网,不同用户之间可以相互访问;
4) 对于非局域网协同工作的,可以创建一个连接互联网的的服务器仓库。
Git的由来
Git的诞生跟Linux有很大的关系。这也就是为什么Git最开始主要是在Linux系统上使用。
Linux的内核是一个开源的项目,有众多的高手参与其中的开发。这样对于提交补丁、保存归档等占了大多数时间。于是到了2002年,项目组开始启用了一个分布式的版本控制系统(BitKeeper)来维护、管理项目版本控制。
可是由于某些原因,到2005年,BitKeeper同Linux开源社区的合作结束,意味着,Linux如果想继续使用BitKeeper,必须得付费。于是Linux开源社区决定开发自己的版本控制系统。于是就有了今天的Git。
小结
1) 解释版本控制系统
2) 介绍集中式、分布式版本控制系统及特点
3) Git的历史
下篇博客将写关于Git的安装
Git 简介的更多相关文章
- Git简介
Git从入门到学会 Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库 ...
- git简介及使用方法
一.git简介及安装1.git简介 Git 是用于 Linux 内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持, ...
- 一、Git简介
由于工作需要,代码版本控制工具由SVN换为了Git.Git对于我来说,很陌生,不清楚其工作原理,所以查询了一些资料,将自己所得知的内容来汇总一下,梳理一下这方面的知识,同时也给其他想了解Git的童鞋们 ...
- 【学习总结】Git学习-参考廖雪峰老师教程一-Git简介
学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...
- Git简介及安装
1 Git简介 Git是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码 ...
- Git Step by Step – (1) Git 简介
由于工作的需要,代码版本控制工具要从Perforce换成Git.说实话,刚开始真的很不适应,要从一个可以很好的支持用户界面的工具转到一个命令行工具,而且Git中有几百个命令,一下子就傻眼了. 但是经过 ...
- Git简介【转】
本文转载自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Git简介 Git是什 ...
- Git 简介与仓库使用
1. Git 简介 2. 远程仓库的使用 3. 本地仓库的使用 1. Git 简介 Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上. 其原理是首先找一台电脑充当服务器的角色 ...
- Git - Git简介与客户端安装
简介 Git是目前世界上最先进的分布式版本控制系统(没有之一)! 集中式版本控制系统(CVS/SVN),版本库是集中存放在中央服务器的,而一般工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最 ...
随机推荐
- 各种Js封装
获取ClassName元素 function getClass(classname,id){ if(document.getElementsByClassName){ if(id){ return $ ...
- ASP.NET 显示项目之外的图片
1.<asp:Image>标签的使用Loginer.images是图片的路径 this.images.ImageUrl = "showImg.aspx?imgFile=" ...
- MiniProfiler
1.安装MiniProfiler包 PM> Install-Package MiniProfiler 2.在Views下的web.config中引入命名空间: <pages pageBas ...
- JS心得——判断一个对象是否为空
判断一个对象是否为空对象,本文给出三种判断方法: 最常见的思路,for...in...遍历属性,为真则为"非空数组":否则为"空数组" 2.通过JSON自带的. ...
- 高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...
高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前 ...
- ng-repeat 嵌套访问父作用域里的属性
在一个项目中,需要嵌套循环输出一个二维表的里的数据 数据结构 [ { id:1, list:[ { id:1, name:'li' } ] }, { id:2, list:[ { id:1, name ...
- angular路由详解:
1.$routeProvider ngRoute模块中的服务 2.otherwise:设置用于路由改变时,与任何其他定义的路由无法匹配的时候执行的代码 3.when:为$route服务定义新的路由 例 ...
- 小的div在大的div中垂直居中
方法一: 1.代码: <div style="width:200px;height:200px;border:solid blue;position:relative;"&g ...
- 《Java编程思想》学习笔记(二)——类加载及执行顺序
<Java编程思想>学习笔记(二)--类加载及执行顺序 (这是很久之前写的,保存在印象笔记上,今天写在博客上.) 今天看Java编程思想,看到这样一道代码 //: OrderOfIniti ...
- Mosquitto搭建Android推送服务(三)Mosquitto集群搭建
文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...