一、版本控制器
1.版本控制器分类
- 集中式版本控制工具SVN、CVS
集中式版本控制工具,版本库是集中存放在中央服务器的,
团队中每个人工作时从中央服务器下载代码,是必须联网才能工作(局域网/互联网),个人修改后提交到中央版本库。
- 分布式版本控制工具Git
分布式版本控制系统没有中央服务器,每个人的电脑上都是一个完整的版本库(工作时无需联网),
多人协作时只需要将各自的修改推送给对方,就能互相看到对方的修改了。
二、Git基本操作
1.Git工作流程
- clone克隆:从远程仓库中克隆代码到本地仓库
- checkout检出:从本地仓库中检出一个仓库分支然后进行修改
- add添加:在提交前先将代码提交到暂存区
- commit提交:提交到本地仓库,本地仓库中保存修改的各个历史版本
- fetch抓取:从远程库中抓取到本地仓库,不进行任何的合并动作(一般操作比较少)
- pull拉取:从远程库拉取到本地仓库自动进行merge合并,然后放到工作区相当于fetch+merge
- push推送:修改完成后,需要和团队成员共享代码时将代码推送到远程仓库
- Workspace:工作区,存放项目代码的地方
- Index/Stage:暂存区,用于临时存放改动,实际上是一个文件用于保存即将提交到文件列表的信息
- Repository:仓库区/本地仓库,存放数据的位置,存放了提交到所有版本的数据(其中HEAD指向最新放入仓库的版本)
- Remote:托管代码的服务器(用于数据交换)
2.本地仓库init
要使用git对代码进行版本控制,首先需要获取本地仓库
- 在电脑的任意位置创建一个空目录,作为本地仓库
- 进入这个目录中右键打开gitbash窗口
- 执行命令
git init
- 如果创建成功后可在文件夹下看到隐藏的.git目录
3.Git基础指令
git工作目录下对于文件的修改会存在几个状态,这些修改的状态会随着git命令的执行而变化:
git操作 | 说明 |
---|---|
git add | 添加工作区一个或多个文件的修改到暂存区 |
git commit -m ‘注释内容’ | 提交暂存区内容到本地仓库的当前分支 |
git status | 查看修改的状态(暂存区、工作区) |
git log [option] | 查看提交记录 |
git reset --hard commitID | 版本切换 |
git reflog | 查看已经删除的记录 |
4.Git分支指令
几乎所有的版本控制系统都以某种形式支持分支,
使用分支可以把工作从开发的主线上分离开来,进行重大的bug修改开发新的功能,以免影响开发主线。
git分支操作 | 说明 |
---|---|
git branch | 查看本地分支 |
git branch 分支名 | 创建本地分支 |
git checkout 分支名 | 切换分支checkout |
git merge 分支名 | 合并分支merge |
git branch -d b1 | 删除分支时,需要做各种检查 |
git branch -D b1 | 不做任何检查,强制删除 |
开发中分支使用原则与流程:
- master:线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
- develop:从master创建的分支,一般作为开发部门的主要开发分支,开发完成后需要合并到master分支准备上线
- feature/xxx分支:从develop创建的分支,一般是同期并行开发但不同期上线时创建的分支,研发任务完成后合并到develop分支
- hotfix/xxx分支:从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支