前言
Git 详细的工作流相信有很多分享, 大家都可以从中找到自己感兴趣的东西, 但相对新手来说,入门有点难以理解。现在我就分享一套极简工作流,先入门, 然后在工作中慢慢理解。
Git 极简工作流步骤
- 我们首先在 Git 仓库(Github或码云等)开一个私仓。
- 我们利用 Git 工作流作为多人开发或个人开发。
- 如果我们开发的项目需要服务器部署的项目, 可以在服务器上直接拉到 Git 的代码到服务器上部署。
Git 极简工作流
极简工作流, 说白了就是分支管理项目, 我们要保证 master 主分支的最新和安全的, 开发、测试,修复 Bug 后,合并分支到 master 就行。
- master: 主干分支, 初始化项目 , 默认创建 master 分支 (保护分支, 只能团队 Leaders 或指定人进行合并), 此分支只能合并其它分支, 不能上传代码。
- develop: 开发分支, 从 master 拉取第一个 develop 分支进行开发(开发阶段在这个分支进行)
- release: 测试分支, develop 开发完成后, 拉取 release 分支进行测试 并打上 release tag, 完成后合并到 master, 并打上 stable tag, 可选择删除 develop 与 release 分支
- hotfix: 热修复分支, release 测试发现 bug 或 master 发布后发现 bug, 接取 hotfix 分支进行修复, 问题验证通过后,合并回 release 或 master 分支, 并打上 hotfix tag , 可选择删除 hotfix 分支
打 tag 目的是方便版本回退和记录版本
发的不同阶段,分几个步骤流,可以分为以下二种:
开发中(或新功能):
master->develop->release->hotfix
sequenceDiagram
master->>develop: 从 master 拉取 develop 分支
develop-->>release: 开发完成后拉取 release 分支
release -->> hotfix: 测试, 如果有 bug, 拉到 hotfix 分支去修复
hotfix -->> release: 修复完成后, 合并回 release 分支,并删除 hotfix 分支
release-)master: 测试完成后, 合并回 master 分支, 并发布。
发布后修 bug:
master->hotfix
sequenceDiagram
master->>hotfix: master 发布后发现 bug, 拉取 hotfix 分支修复 bug
hotfix-)master: 修复测试完成后, 合并回 master 分支, 并发布。
其实,只要保存 master 的安全, 不管多开分支还是只用一个分支去开发测试都行, 新手嘛, 上手了在说后面的。不要想那么复杂先,后面慢慢补。
Git 基本操作
记录常用的操作指令, 详情的可以看 菜鸟教程-Git 教程
另外,Visual Studio Code 里面的源代码管理工具,可以可视化的操作,也是简单易用。
创建仓库命令
初始化仓库,会生成 .git 隐藏目录,通常这一步可以在 Git 网站上操作创建仓库, 然后 git clone 拉取到本地。
git init
拷贝一份远程仓库,也就是下载一个项目
git clone <仓库地址>
如:
git clone https://gitee.com/xxx/xxx.git
提交与修改
本地提交文件三步
- 查看仓库当前的状态,显示有变更的文件
git status
- 添加文件到暂存区
git add <文件>
添加所以文件到暂存区
git add .
- 提交暂存区到本地仓库
git commit -m "提交的说明"
比较文件的不同
git diff
将文件从暂存区和工作区中删除
git rm
移动或重命名工作区文件
git mv
版本回退
git reset --hard e475afc
e475afc 版本标识
远程操作
下载远程代码并合并, 常用的指令,上班第一时间拉取远程服务器新的代码到本地
git pull
上传远程代码并合并, 常用的指令,下班前推送一次到远程服务器, git push 前, 先提交 git commit 和 git pull 代码到暂存区,合并冲突的代码(新手不懂建议找冲突代码的同事一起处理冲突的代码), 如果没有冲突,可以提交,下班。
代码冲突解决,建议使用
Visual Studio Code源代码管理工具可视化处理
git push
远程仓库操作
git remote
添加远程版本库
git remote add origin git@github.com:xx/xx.git
git push -u origin master
合并分支, 后面细说
git merge
从远程获取代码库
git fetch
拉到远程 master 分区并合并到当前分区
git fetch origin
git merge origin/master
提交日志
查看历史提交记录
git log
以列表形式查看指定文件的历史修改记录
git blame <文件>
Git 分支管理
列出分支
git branch
创建分支
git branch dev
dev 分支名
创建分支并切换过去
$ git checkout -b dev
删除分支
git branch -d dev
分支合并
git merge dev
当前分支合并 dev 分支, 合并完后就可以删除分支, 记得在 git push 提交到服务器
合并冲突
在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决
$ git status -s
UU index.ts
$ git add index.ts
$ git status -s
M index.ts
$ git commit
[master 88afe0e] Merge branch 'change_site'
Git tag 操作
tag 命名规范
版本号 v1.1.2
- 第一个数字1,代表大版本,默认从1开始,大版本更新时才递增
- 第二个数字1,代表小版本更新,默认从0开始
- 第三个数字2,代表补丁版本,默认从0开始
版本类型说明
当然我们可以更正规一点的命名,前面加上版本类型
| 版本类型 | 说明 | 备注 |
|---|---|---|
| stable | 稳定版,新功能上线后 | 不删除 tag,方便后续回滚 |
| release | 预发布版,开发测试完成,正式版前的版本 | 不删除 tag,方便后续回滚 |
| hotfix | 修复版,修复线上 bug | 不删除 tag,方便后续回滚 |
| stable_v1.1.0, 稳定版v1.1.0 |
相关操作命令
打标签
git tag -a stable_v1.1.3 -m “Stable version 1.1.3″
- git tag 是命令
- -a stable_v1.1.3 是增加名为 stable_v1.1.3 的标签
- -m 后面跟着的是标签的注释
打标签的操作发生在我们 commit 修改到本地仓库之后
提交标签到远程服务器上
git push origin master
git push origin --tags
删除标签的命令
git tag -d stable_v1.1.3
删除远端服务器的标签
git push origin :refs/tags/stable_v1.1.3