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),版本库是集中存放在中央服务器的,而一般工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最 ...
随机推荐
- asp.net三层架构 及其中使用泛型获取实体数据介绍
asp.net中使用泛型获取实体数据可以发挥更高的效率,代码简洁方便,本例采用三层架构.首先在model层中定义StuInfo实体,然后在 DAL层的SQLHelper数据操作类中定义list< ...
- AngularJS2.0 教程系列(一)
http://my.oschina.net/u/2275217/blog/482178
- Tomcat7配置及其servlet调用详解
Tomcat 1 Tomcat简介 Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成 ...
- MySQL 磁盘I/O问题
一.使用磁盘阵列:RAID,廉价磁盘冗余阵列,可靠性,性能好. 二.使用 Symbolic Links 分布I/O 利用操作系统的符号链接将不同的数据库或表.索引指向不同的物理磁盘,达到分布磁盘I/O ...
- 2>&1
经常关注linux脚本的人,一定看到过 2>&1 这样的用法,最初一定不明白其中的含义以及为什么是这样的一种组合.昨天偶然间再次看到了这个 2>&1 的写法,遂下决心搞明白 ...
- [mark] 使用Sublime Text 2时如何将Tab配置为4个空格
在Mac OS X系统下,Sublime Text是一款比较赞的编辑器. 作为空格党的自觉,今天mark一下使用Sublime Text 2时如何将Tab配置为4个空格: 方法来自以下两个链接: ht ...
- Photoshop学习笔记
视频地址:PhotoshopCS5视频教程 1.打开文件的快捷方式:软件刚启动时,双击绘图区域 2.文件->新建,弹出的新建对话框中,包含了剪切板及纸张的相关信息 3.图像缩放快捷方式:ctrl ...
- java 深入技术七(类的结构和反射)
1.java反射(reflect) java 类的结构 java反射机制就是把java类按结构分解,每一部分对应特定的反射类 java反射机制允许运行时加载,探知和使用在编译期间完全未知的classe ...
- 关于display:none 和visibility:hidden 的区别
1.占据空间 :none 隐藏后不占据空间 visibility占据空间 2.回流与渲染:none产生回流与渲染 ? 可以通过oprea中的Profiler 工具测试. 关于回流的详细介绍:http: ...
- struts2笔记
Struts2 中, HTML 表单将被直接映射到一个 POJO,通过params拦截器,类中定义对应属性,及对应set方法即可. Struts2 中,任何一个POJO都可以是一个action类. S ...