git工作流

工作流

一、概述

1、概念

通俗的讲,GIt工作流指的是代码管理的工作流程和方式。在实际的工作中,根据不同的场景,使用不同的工作流方式。

工作流是各个开发者协同工作的方式或模式。

2、分类

  • 集中式工作流
  • 功能分支工作流
  • GitFlow工作流
  • Forking工作流

二、集中式工作流

第一:创建远程仓库(Gitee) - 项目经理、组长、负责人

第二:创建本地仓库,推送远程仓库

第三:添加成员 - 权限

第四:各成员克隆远程仓库项目

第五:各成员在各自的本地仓库中,实现相关的操作

1)添加文件 / 修改文件

2)添加暂存区

3)提交版本 – 本地版本库

4)推送远程仓库 – 特别注意:先拉后推

5)解决冲突

第六:根据需要,打标签

课堂练习:以学习小组为单位或同桌为单位,创建远程仓库,添加成员,在仓库中实现各种操作以及骚操作都可以(但实际开发中就不能有)!

开放性比较大,比较适合小团队开发

三、功能分支工作流

第一:创建远程仓库(Gitee) - 项目经理、组长

第二:创建本地仓库,推送远程仓库

第三:添加成员 - 权限

第四:设置分支的权限 - 把master分支保护起来

第五:各成员克隆远程仓库项目

第六:各成员在各自本地仓库中,实现相关的操作

1)创建相关的功能分支,实现相关的功能或业务,而不是直接在master分支中进行操作,从而保证master分支安全可靠、不被污染。

2)添加文件 / 修改文件

3)添加暂存区

3)提交版本 – 本地版本库

4)推送功能分支远程仓库 – 特别注意:先拉后推

$ git push --set-upstream origin feature-xxxx

5)解决冲突

第七:合并分支,把相关的功能分支合并到master分支中

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并

注意:在此过程中,很有可能会发生合并冲突问题 - 解决冲突

zing163 - feature-reg - 实现注册功能 - 推送到远程仓库 - (发起 Pull Request)

zing173 - git pull origin feature-reg : master - 冲突 - git push

zing163 - 切换到master - git pull - 拉取远程仓库中最新的代码

第八:推送远程仓库

第九:根据需要,打标签

第十:切换相关分支,拉取、更新内容,同步仓库(重复以上操作)

第十一:完成了功能分支的使命后,根据需要把功能分支删除

课堂练习:以学习小组为单位或同桌为单位,创建远程仓库,添加成员,设置保护分支,实现基于功能分支工作流的操作。

四、GitFlow工作流

第一:创建远程仓库(Gitee) - 项目经理、组长

第二:创建本地仓库,推送远程仓库

第三:添加成员 - 权限

第四:基于master分支,创建dev分支(开发分支),把master分支和dev分支保护起来,把

dev分支设置为默认分支。

第五:各成员克隆远程仓库项目

第六:各成员在各自本地仓库中,实现相关的操作

1)每次开始新的功能前先创建一个功能分支,实现相关的功能或业务

2)添加文件 / 修改文件

3)添加暂存区

4)提交版本 – 本地版本库

5)推送功能分支远程仓库 – 特别注意:先拉后推

$ git push --set-upstream origin feature-xxxx

6)解决冲突

第七:合并分支,把相关的功能分支合并到dev分支中

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并

注意:

  • 在此过程中,很有可能会发生合并冲突问题 - 解决冲突
  • 开发者的本地仓库要拉取远程仓库的内容,同步更新远程仓库

第八:开发到一定阶段,基于dev分支,创建RELEASE分支(预发布分支) - 测试或完善、修复操作

命名规范:release-xxxx

1)添加文件 / 修改文件

2)添加暂存区

3)提交版本 – 本地版本库

4)推送功能分支远程仓库 – 特别注意:先拉后推

第九:合并分支,把RELEASE分支(预发布分支)合并到masterdev分支

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并

第十:打标签

管理员权限

命名规范:xxxx-release

$ git tag 标签名称
$ git tag -a 标签名称 -m 描述信息

第十一:如果某个标签(或版本)有BUG,基于此标签新建一个修复分支,在此分支中,对此BUG进行修复

# 发起 issues (问题)
# 基于标签创建新的热修复分支 - hotfix-xxxx
$ git checkout -b <分支名称> <标签名称>

$ git checkout -b hotfix-I63LUP release-1.0.0

1)添加文件 / 修改文件

2)添加暂存区

3)提交版本 – 本地版本库

4)推送功能分支远程仓库 – 特别注意:先拉后推

第十二:合并分支,把修复分支合并到masterdev分支(打补丁)

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并

第十三:打标签

第十四:删除相关的分支

# 删除本地分支
$ git branch -d 分支名称

# 删除远程分支
$ git push origin --delete 分支名称

第十五:各组员更新dev分支,重复以上的操作

课堂练习:以学习小组为单位或同桌为单位,实现GitFlow工作流的相关操作。

五、Forking工作流

第一:Foking别人的项目到自己的帐号下

第二:把别人的项目从你自己帐号下clone下来

第三:开发

注意:开发过程中,使用以上学过的工作流或自定义工作流

第四:Pull Request请求合并 - 贡献代码

六、自定义工作流

基于GitFlow工作流做了一个简化

第一:组长在本机创建初始项目(IDE开发工具 + 忽略文件),创建本地仓库并提交第一个版本

第二:创建空的远程仓库,并创建和设置相关分支

1)添加远程仓库,推送本地仓库到远程

2)创建相关的分支

  • 主分支:master
  • 开发分支:dev
  • 功能分支:dev-组员的名字,如:dev-wyy

3)添加开发成员

4)设置分支规则

第三:各组员clone远程仓库到本机,进行相关的操作

1)切换到成员自己对应的分支

# 方法一
$ git pull origin dev-xxx
$ git checkout dev-xxx

# 方法二
$ git checkout -b dev-xxx
$ git pull origin dev-xxx

# 方法三
$ git fetch origin dev-xxx
$ git checkout dev-xxx

2)添加文件 / 修改文件

3)添加暂存区

4)提交版本 – 本地版本库

5)推送功能分支远程仓库 – 特别注意:先拉后推

6)合并分支,把组员的功能分支合并到 dev 分支中

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并(建议)

7)拉取、合并master分支,更新其他成员的代码到自己的分支中 – 先拉后推

第四:合并分支,开发到某个阶段,把 dev 分支合并到 master 分支中

  • 发起Pull Request(合并请求) - 代码托管平台
  • 管理员可以根据需要直接合并(建议)

注意:dev要经过测试

第五:打标签

七、IDEA操作GIT

1、配置 Git 环境

Preferences - Version Control - Git

在这里插入图片描述

2、克隆项目

# 命令克隆
$ git clone .....

1)方法一

File菜单 - New - Project from Version Control…

注意:拷贝项目的远程仓库地址

2)方法二

退出项目,回到欢迎界面 - Get from VCS

3)方法三

Git菜单 - clone…

3、创建项目

1)方法一

File菜单 - New Project - 勾选Create Git repository

2)方法二

File菜单 - New Project - 不勾选Create Git repository

  • 在当前项目终端中,通过命令初始化仓库:git init
  • VCS菜单 - Create Git Repository…

4、忽略文件

第一:Preferences - Plugins - MarketPlace - 搜索.ignore - installed - 重启IDEA

第二:创建忽略文件,并添加忽略内容

选中项目右键 - New - .ignore File … - 选择模板

注意:在IDEA中,创建完项目后,第一件事情就应该先创建忽略文件

6、Git基本操作

右键项目 - Git菜单 、菜单栏中多了一个Git菜单

所有的Git操作都在Git菜单中

1)暂存文件

右键项目 - Git菜单 - Add

2)提交版本

右键项目 - Git菜单 - Commit Directory…

3)管理远程地址

右键项目 - Git菜单 - Manage Remotes…

4)推送远程仓库

右键项目 - Git菜单 - Push…

注意:除了第一次可以直接推送,否则,在每次推送之前,都要遵循:先拉后推(解决冲突问题)

5)拉取远程仓库

右键项目 - Git菜单 - Pull…

6)解决冲突

注意:冲突问题要尽量避免

7、分支操作

1)创建分支

2)推送分支

3)更新 / 拉取分支

4)切换分支

5)合并分支

6)删除分支

8、标签操作

1)创建标签

2)删除标签

9、撤销与恢复

第一:在 Log 面板中,选择某个版本提交 - Copy Reversion Number(40位哈唏值)

rectory…

3)管理远程地址

右键项目 - Git菜单 - Manage Remotes…

4)推送远程仓库

右键项目 - Git菜单 - Push…

注意:除了第一次可以直接推送,否则,在每次推送之前,都要遵循:先拉后推(解决冲突问题)

5)拉取远程仓库

右键项目 - Git菜单 - Pull…

6)解决冲突

注意:冲突问题要尽量避免

7、分支操作

1)创建分支

2)推送分支

3)更新 / 拉取分支

4)切换分支

5)合并分支

6)删除分支

8、标签操作

1)创建标签

2)删除标签

9、撤销与恢复

第一:在 Log 面板中,选择某个版本提交 - Copy Reversion Number(40位哈唏值)

第二:右键项目 - Git 菜单 - Reset HEAD… (模式)

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WyuanY.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值