集中式版本控制工具(不常用)
版本库集中于中央服务器,team要联网才能工作(下载代码)
SVN
CVS
分布式版本控制工具
每个电脑上都有一个完整的版本库,工作时无需联网,可以把修改推送给其他人来完成团队合作
git
特点:
1.速度快
2.设计简单
3.对非线性开发模式的强力支持
4.完全分布式
4.可以管理超大规模项目
工作流程
clone克隆 | 从远程仓库克隆代码到本地仓库 |
checkout检出 | 从本地检出一个仓库分支然后进行修改 |
add添加 | 将代码提交到暂存区 |
commit提交 | 提交到本地仓库 |
fetch抓取 | 从远程仓库中抓取本地仓库,不进行合并操作 |
pull拉取 | 从远程仓库拉到本地仓库,并进行合并,放到工作区 |
push推送 | 把代码提交到远程仓库 |
git的工作状态
unstaged:
untracked:从无到有还没被git管理
分支
防止影响主线开发
HEAD
当前分支
分支使用原则和流程
master | 线上分支,主分支,中小规模项目作为线上运行的应用对应分支 |
develop | 从master创建的分支,主要开发分支,任务完成后需要合并到master分支 |
feature/xxxx分支 | 从develop创建的分支,同期并行开发,任务完成后需要合并到develop分支 |
hotfix/xxxx分支 | 从master派生的分支,作为线上bug修复使用,修复完成后需要合并到master,develop,test |
test | 用于代码测试 |
pre | 预上线分支 |