gitflow 基础实验(基于 Gittee)


1. TeamLead 规划源代码架构、开发分支

提前规划好 哪个 feature 分支,分配给哪位组员

前置准备工作:

  1. gittee 仓库创建,作为 源代码
  2. team leader 在本地创建自己的工作文件夹;将项目源代码 clone 到本地仓库

准备本地开发分支:

  1. team leader 在本地创建 dev 分支(develop 分支/开发分支);并推送到远程仓库。

    基于 master,创建 develop,指的是:创建 develop 时,HEAD 要指向 master:
    在这里插入图片描述

Bug:
在这里插入图片描述

DeBug:
*刚创建的 git 仓库默认的 master 分支要在第一次有效的 commit 之后才会真正建立,否则就像你声明了个对象但没初始化一样。
所以,新建一个 readme.md ,完成一次 commit;然后再创建新的 dev 分支
在这里插入图片描述

推送本地开发分支到远程仓库(完成后,在 Gittee 查看):

Bug:
在这里插入图片描述
DeBug:
问题可能出现在 oschina 中的 README.md 文件不在本地代码目录中,所以我们需要本地也有,不然的话就会冲突。
可以解决的方案应该你已经明白了。使用的是直接加入参数 -f 也可以,但是太过于粗暴,后果可能会什么都同步同步,一般不建议这样。那么最简单的方法如下(命令行表示,拉取远程库 origin 到 master 分支):
在这里插入图片描述
然后,推送 dev 分支到远程仓库:
在这里插入图片描述


2. team leader 或项目经理 准备好 feature 分支

teamleader 切换到 develop 分支,根据规划,创建 功能分支 feature:

  1. 首先,本地仓库切换到 dev 分支
    切换前后,使用 git branch 确认当前所处分支
    在这里插入图片描述

  2. 创建 feature 分支:
    创建两个 feature;
    创建完成后,用 git branch 确认所有分支
    在这里插入图片描述

    基于 develop 创建 feature 分支,指的是:创建 feature 分支时,HEAD 要指向 develop(见下图)

在这里插入图片描述
将创建的 feature 分支,推送到远程仓库

可以使用 --all ,来推送所有的分支到远程仓库

在这里插入图片描述


3. 开发 feature

以上分支准备好以后,分配不同的员工,去开发不同的 feature:

如何在员工文件夹下 clone feature 分支?并且切换到 对应的 feature 分支

Bug:
员工在 clone 远程仓库后,看不到待切换的 feature 分支
在这里插入图片描述

DeBug:
需要先拉取远程仓库,才能看到。
在这里插入图片描述
不同员工拉取各自负责的 feature 远程分支,在本地开发; feature 分支开发完以后,推送到 远程仓库的 对应 feature 分支:

add, commit, push 三步:
在这里插入图片描述
员工发起申请(pull request),申请 合并 feature 分支上的代码 至 develop 分支:
在这里插入图片描述


4. 至此:在 develop 分支可以看到 开发的 feature 内容

一般,develop 分支开发一段时间后,才会进到下一步;进到 master 之前,需要 先准备 预发布分支(也是 测试分支)


5. 测试代码(在 release 分支/预发布分支)

team leader 在本地仓库,拉取远程仓库的 develop 分支:

git pull --progress -v --no--rebase "origin"  develop

team leader 基于 dev 分支 创建 release_1p0p1分支;测试员工基于 release 预发布分支测试。

team leader 将 release_1p0p1分支 push 至远程仓库:

git push --all --progress "origin"git push "origin"

测试员工,拉取远程仓库;然后,切换到 release_1p0p1 分支:
Bug:
没有进到 .git 对应的文件夹下:
在这里插入图片描述
DeBug:
进到 .git 对应的文件夹下;
先 pull 远程仓库所有分支,也就是 “origin”
然后切换到 release 分支
在这里插入图片描述
测试完成后,把 release 分支推到远程仓库:

推送时,使用如下两种方式指定分支:

  • 可以不写,默认是推送当前的分支,也就是 release 分支
  • 也可以明确写上推送哪个分支
    在这里插入图片描述

6. 测试完成,达到里程碑;创建标签,发布

请 team leader 在远程仓库端,切换到 release 分支,然后,在 release 分支下:

  • 测试人员提交 release 分支的 pull request
  • team leader 合并 release 分支到 master 分支(可使用如下命令行完成合并)
    在这里插入图片描述

team leader 在自己的文件夹下(本地仓库),切换到 master 分支:

  • 然后,拉取远程仓库的 master 分支到本地;
  • 然后,在本地仓库下,创建标签 打tag 1.0.1_release
  • 然后,推送本地 master 分支到远程仓库(本次推送,需要包括标签)

7. 出现 bug 了,怎么处理

  1. team leader 在本地仓库创建 hotfix 分支 hotfix_1.0.2,然后,把当前分支推送到远程端
  2. 然后,切换到 hotfix 分支;马上进行修复(一般, team leader 自己直接 快速完成紧急修复)
  3. 修复之后,将代码提交到 hotfix 分支;然后,推送到远程端
  4. team leader 在远程仓库,通过 pull request 把分支合并进 master 分支
  5. team leader 回到本地仓库,先拉取 master 分支,同步过来;
    然后,在master 分支,重新打标签 打tag 1.0.2_release
    然后,推送本地master分支到远程仓库(本次推送,需要包括标签)

参考链接:
NA

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值