Git | 青训营笔记

102 阅读2分钟

Git

Git是什么?

Git是一个免费的开放源码的分布式版本控制系统,设计用于处理从小到大的所有项目,速度快,效率高。

版本控制是什么?

一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统

为什么需要版本控制?

更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码

版本控制类型

本地版本控制(RCS)

集中式版本控制(SVN)

分布式版本控制(Git)
基本原理
  • 每个库都存有完整的提交历史,可以直接在本地进行代码提交
  • 每次提交记录的都是完整的文件快照,而不是记录增量
  • 通过 Push 等操作来完成和远端代码的同步
优点
  • 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
  • 分支管理功能强大,方便团队合作,多人协同开发
  • 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失
缺点
  • 相对于SVN更复杂,学习成本高
  • 对于大文件的支持不是特别好(git-lfs 工具可以弥补这个功能)

Git基本命令

image.png

完整的Git视图

image.png

集中式工作流(Gerrit 、SVN)

什么是集中式工作流

只依托于 master 分支进行研发活动

工作方式

  • 获取远端 master 代码
  • 直接在 master 分支完成修改
  • 提交前拉取最新的 master 代码和本地代码进行合并(使用rebase),如果有冲突需要解决冲突
  • 提交本地代码到 master

分支管理工作流(Github 、Gitlab)

  • Git Flow : 分支类型丰富,规范严格
  • Github Flow : 只有主干分支和开发分支,规则简单
  • Gitlab Flow : 在主干分支和开发分支上构建环境分支,版本分支,满足不同发布 or 环境的需要