Git 团队开发极简工作流与 Git 新手入门操作指南

325 阅读5分钟

前言

Git 详细的工作流相信有很多分享, 大家都可以从中找到自己感兴趣的东西, 但相对新手来说,入门有点难以理解。现在我就分享一套极简工作流,先入门, 然后在工作中慢慢理解。

Git 极简工作流步骤

  1. 我们首先在 Git 仓库(Github码云等)开一个私仓。
  2. 我们利用 Git 工作流作为多人开发或个人开发。
  3. 如果我们开发的项目需要服务器部署的项目, 可以在服务器上直接拉到 Git 的代码到服务器上部署。

Git 极简工作流

极简工作流, 说白了就是分支管理项目, 我们要保证 master 主分支的最新和安全的, 开发、测试,修复 Bug 后,合并分支到 master 就行。

  1. master: 主干分支, 初始化项目 , 默认创建 master 分支 (保护分支, 只能团队 Leaders 或指定人进行合并), 此分支只能合并其它分支, 不能上传代码。
  2. develop: 开发分支, 从 master 拉取第一个 develop 分支进行开发(开发阶段在这个分支进行)
  3. release: 测试分支, develop 开发完成后, 拉取 release 分支进行测试 并打上 release tag, 完成后合并到 master, 并打上 stable tag, 可选择删除 develop 与 release 分支
  4. 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

提交与修改

本地提交文件三步

  1. 查看仓库当前的状态,显示有变更的文件
git status
  1. 添加文件到暂存区
git add <文件>

添加所以文件到暂存区

git add .
  1. 提交暂存区到本地仓库
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

参考地址