什么是Git
linus用C语言写的分布式版本控制系统。前者有CVS、SVN这些集中式的版本控制系统,但速度慢,且需联网,另有一些系统比这两者好用,不过需要付费,与Linux的开源精神不符,如BitKeeper。也正是它的东家BitMover公司因为开发Samba的Andrew试图破解BitKeeper的协议(据说不止他一个),要收回Linux社区的免费使用权,才迫使Linus在两周之内自己动手用C写了一个分布式版本控制系统。并在一个月内转移Linux的源码由Git来管理了。
集中式vs分布式
集中式和分布式,一个版本对应多个版本
集中式必须联网才能工作,无网络状态下无法回退到之前的某个版本
Git速度快、灵活,任意两个开发者之间可以很容易的解决冲突。
- Git代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。学习周期长
Git基本概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git工作流
克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
git创建仓库
1 | git init 在当前目录下创建Git仓库 |
分支管理
1 | git branch (branchname) 创建分支 |