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),版本库是集中存放在中央服务器的,而一般工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最 ...
随机推荐
- 欢迎使用CSDN-markdown编辑器
私有变量和函数 在函数内部定义的变量和函数,如果不对外提供接口,外部是无法访问到的,也就是该函数的私有的变量和函数. function Box(){ var color = "blue&qu ...
- vim的编译安装及其插件YouCompleteMe安装
相关的环境: win 7 x64 vs2013 community python 2.7.10 AMD64 python 3.5 AMD64 LLVM 3.5 cmake 3.5 YouCompl ...
- 在Swift中实现单例方法
在写Swift的单例方法之前可以温习一下Objective-C中单例的写法: + (instancetype)sharedSingleton{ static id instance; static d ...
- Android基础 : Android ContentProvider
Android 应用程序通过ContentProvider实现方式统一的数据共享功能. 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,在Activi ...
- 【转】将Oracle数据库设置为归档模式
查看归档状态为非归档sys@JSSBOOK> select log_mode from v$database;LOG_MODE------------NOARCHIVELOG archive状态 ...
- CSS3使用Font Awesome字体图标的控件样例(按钮,工具栏,输入框)
按钮上加入font awesome图标,用原生的input button标签无法实现,查看网上的只能通过<a><li></li></a>实现此功能,通过 ...
- C和指针 第十五章 输入输出缓冲
对于C,所有的I/O操作都只是简单的从程序移进或移出字节,这种字节流便成为流(stream),我们需要关心的只是创建正确的输出字节数据,以及正确的输入读取数据,特定的I/O设备细节都是对程序隐藏的. ...
- IOS与Android APP界面设计规范要点
IOS篇 一.尺寸及分辨率 iPhone界面尺寸:320*480.640*960.640*1136 iPhone6:4.7英寸(1334×750),iPhone6 Plus:5.5英寸(1920×10 ...
- Asp.Net Core--发布到IIS
翻译如下: 支持的操作系统 Windows 7及更高版本 Windows Server 2008 R2及更高版本 概念上,本文档中描述的IIS配置也适用于在Nano Server IIS上托管ASP. ...
- apache如何解决跨域资源访问
很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件.图片等)放在独立服务器或者CDN上,并且使用独立的资源域名(例如res.test.com) 但是在实 ...