Git
Git是什么?
Git是一个免费的开放源码的分布式版本控制系统,设计用于处理从小到大的所有项目,速度快,效率高。
版本控制是什么?
一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统
为什么需要版本控制?
更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码
版本控制类型
本地版本控制(RCS)
集中式版本控制(SVN)
分布式版本控制(Git)
基本原理
- 每个库都存有完整的提交历史,可以直接在本地进行代码提交
- 每次提交记录的都是完整的文件快照,而不是记录增量
- 通过 Push 等操作来完成和远端代码的同步
优点
- 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
- 分支管理功能强大,方便团队合作,多人协同开发
- 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失
缺点
- 相对于SVN更复杂,学习成本高
- 对于大文件的支持不是特别好(git-lfs 工具可以弥补这个功能)
Git基本命令
完整的Git视图
集中式工作流(Gerrit 、SVN)
什么是集中式工作流
只依托于 master 分支进行研发活动
工作方式
- 获取远端 master 代码
- 直接在 master 分支完成修改
- 提交前拉取最新的 master 代码和本地代码进行合并(使用rebase),如果有冲突需要解决冲突
- 提交本地代码到 master
分支管理工作流(Github 、Gitlab)
- Git Flow : 分支类型丰富,规范严格
- Github Flow : 只有主干分支和开发分支,规则简单
- Gitlab Flow : 在主干分支和开发分支上构建环境分支,版本分支,满足不同发布 or 环境的需要