源代码管理工具-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工作流程对比
1 | $ svn checkout —— git clone |
分布式和集中式最大的区别在于:在分布式下,本地有个代码仓库,开发者可以在本地提交; 而集中式版本控制, 只有在服务器才有一个代码仓库, 只能在服务器进行统一管理
7. git工作原理
- 概念理解
工作区
与.git文件夹同级的其他文件夹或者子文件夹
版本控制库
暂缓区
分支(Git不像SVN那样有主干和分支的概念. 仅仅存在分支,其中master分支为默认被创建的分支,类似于SVN中的主干)
切换分支:通过控制HEAD指针指向不同的分支,就可以切换
操作原则: 所有新添加/删除/修改的文件 必须先添加到暂缓区,然后才能提交到HEAD指向的当前分支中
8. git使用环境
单人开发只需要一个本地库
原因:不需要与他人共享代码,只负责管理自己代码即可;例如提交代码,删除代码,版本控制等等
多人开发时需要一个共享版本库
共享版本库的形式:
本地共享库:文件夹/U盘/硬盘
远程共享库:自己搭建git服务器/ 托管到第三方平台(例如github, oschina)使用环境
无论是单人开发还是多人开发,客户端都可以使用命令行或者图形界面使用git
SourceTree
GitHub
下载地址:https://mac.github.com
不过它是专门为GitHub网站而设计的
Xcode
虽然集成较好,但是只能做一些常用的简单操作,复杂操作还要使用命令行