源代码管理工具-GIT
一. git 概述
1. git 简介?
什么是git?
> git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的
git的起源?
> 作者是Linux之父:Linus Benedict Torvalds > 当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)
git的现状?
> 在国外已经非常普及,国内并未普及(在慢慢普及) > 越来越多的开源项目已经转移到git
2. 常见的源代码管理工具有哪些?
> CVS
- 开启版本控制之门
- 1990年诞生,“远古时代”的主流源代码管理工具
> SVN
- 全称是Subversion,集中式版本控制之王者
- 是CVS的接班人,速度比CVS快,功能比CVS多且强大
- 在国内软件企业中使用最为普遍(70%-90%)
> ClearCase
- 收费的集中式版本控制工具,安装比Windows还大,运行比蜗牛还慢
- 能用ClearCase的一般是世界500强,他们有个共同的特点是财大气粗或者人傻钱多
> VSS
- 微软的集中式版本控制工具,集成在Visual Studio中
3. 集中式版本控制
所有的代码都集中在一块, 统一进行管理
4. 分布式版本控制
在每个客户端都有一份完整的代码仓库, 可以在每个客户端自行管理
5. git 和 svn的简单对比
> 速度
在很多情况下,git的速度远远比SVN快
> 结构
SVN是集中式管理,git是分布式管理
> 其他
SVN使用分支比较笨拙,git可以轻松拥有无限个分支
SVN必须联网才能正常工作,git支持本地版本控制工作
旧版本的SVN会在每一个目录置放一个.svn,git只会在根目录拥有一个.git
6. SVN工作流程和GIT工作流程对比
- svn checkout —— git clone
svn 只下载代码, git 会连同代码仓库一起下载下来
- svn commit —— git commit
svn 是提交到服务器,git 中是提交到本地仓库,需要使用push才能提交到服务器
- svn update - git pull
都是从服务器下载最新被修改的代码
分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以在本地提交; 而集中式版本控制, 只有在服务器才有一个代码仓库, 只能在服务器进行统一管理
7. git工作原理
概念理解
- 工作区 > 与.git文件夹同级的其他文件夹或者子文件夹 - 版本控制库 > 暂缓区 > 分支(Git不像SVN那样有主干和分支的概念. 仅仅存在分支,其中master分支为默认被创建的分支,类似于SVN中的主干) 切换分支:通过控制HEAD指针指向不同的分支,就可以切换*
* 操作原则: 所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中*
8. git使用环境
单人开发只需要一个本地库
原因:不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等
多人开发时需要一个共享版本库
共享