这是我参与「第三届青训营 - 后端场」笔记创作活动的第4篇笔记
一、Git是什么
Git是一个免费的、开源的分布式版本控制系统
-
什么是版本控制?
用来记录文件内容变化的一种系统
-
为什么需要版本控制?
方便查阅版本的改动,也可以进行错误代码的回滚(
说白了就是一种高级的Ctrl+Z) -
版本控制的类型?
本地版本控制、集中式版本控制(SVN)、分布式版本控制(Git)
二、Git的基本使用
- 配置相关
- git config 配置文件相关
- git remote 指定本地仓库的远端仓库地址
- 提交代码
- git add 暂存变动
- git commit 变动提交到本地仓库
- 远端同步
- clone 拉取远端仓库到本地目录
- pull 拉取远端分支,并和本地合并
- fetch 拉取远端分支,不会进行合并
- push 本地代码同步到云端
三、使用Git的开发流程
集中式工作流 or 分支管理工作流
-
集中式工作流
只依托master分支进行研发活动
- 获取远端代码
- 直接在master分支完成修改
- 提交前拉取最新的master代码和本地代码进行合并,如果有冲突需要解决冲突
- 提交本地代码到master
-
分支管理工作流
-
Git Flow
分支类型丰富,规范严格
优点:代码清晰,不易出现混乱
缺点:流程太过复杂,上线节奏慢,研发难以按照该标准执行
-
Github Flow
只有主干分支和开发分支,规则简单,基于Pull Request向主干分支中提交代码
-
Gitlab Flow
在主干分支和开发分支之上构建环境分支,版本分支,满足不同发布 or 环境的需要
既保持了单一主分支的简便,又可以适应不同的开发环境
-
Ref:字节跳动青训营 - Git的正确使用姿势与最佳实践