Gitflow开发者使用指导——Gitflow Workflow(五)

Gitflow开发者使用指导

Developer大部分时间是在dev分支上为当前的版本开发feature,进入到Release Candidate阶段后提交bug fix,Hotfix阶段提交bug fix。下文分别讲述这三个阶段Developer应该如何使用Git遵循Gitflow进行团队协作。另外补充一下初始化本地仓库操作,merge conflict的解决,同步代码。

初始化本地仓库

克隆仓库到本地

git clone ssh://url/xxx.git

开发阶段

为当前版本(sdk_v1.1)开发feature

# 切换到dev分支
git checkout dev

# 同步dev分支

git fetch -p --all
git pull -r

# 检出feature分支
git checkout -b feature/v1.1/JIRA-671/add_xx_func

# 开发,本地提交

# 推送feature branch到Gitlab
git push origin feature/v1.1/JIRA-671/add_xx_func

# Gitlab上提交merge request,请求合并入dev分支

# 请求被合并后可以删除本地分支(根据个人需要)
git checkout dev
git branch -d feature/v1.1JIRA-671/add_xx_func

发布候选阶段

为当前版本(sdk_v1.1)进行Bug Fix

# 同步远程仓库
git fetch -p --all

# 检出发布候选分支
git checkout -b sdk_v1.1_rc origin/sdk_v1.1_rc

# 检出feature分支
git checkout -b f_release/v1.1/JIRA-673/fix_xx

# 进行Bug Fix,本地提交

# 推送feautre branch到Gitlab
git push origin f_release/v1.1/JIRA-673/fix_xx

# Gitlab上提交merge request,请求合并入sdk_v1.1_rc分支

# 请求被合并后可以删除本地分支(根据个人需要)
git checkout sdk_v1.1_rc
git branch -d f_release/v1.1/JIRA-671/fix_xx

热修复阶段

为当前发布版本(sdk_v1.1.1_release)进行Bug Fix

# 同步远程仓库
git fetch -p --all

# 检出热修复分支
git checkout -b hotfix_v1.1.2 origin/hotfix_v1.1.2

# 检出feature分支
git checkout -b f_hotfix/v1.1.2/JIRA-680/fix_xx

# 进行Bug Fix,本地提交

# 推送feature branch到Gitlab
git push origin f_hotfix/v1.1.2/JIRA-680/fix_xx

# Gitlab上提交merge request,请求合并入hotfix_v1.1.2分支

# 请求被合并后可以删除本地分支(根据个人需要)
git checkout hotfix_v1.1.2
git branch -d f_hotfix/v1.1.2/JIRA-680/fix_xx

解决合并冲突

当多个开发者同时进行推送的时候可能会发生merge conflict,以dev分支上的merge conflict为例,讲述应该如何处理。

Maintainer在合并请求时发现merge conflict,应该close当前的合并请求,删除feature branch,并通知Developer重新修改后推送。Developer可以按以下流程在本地进行conflict fix:

# 检出dev分支
git checkout dev

# 同步dev分支
git fetch -p --all
git pull -r

# 在最新的dev分支上对feature branch进行变基,conflict fix
git rebase dev feature/v1.1/JIRA-675/add_func_xx

# 解决变基过程中的冲突后,重新推送feature branch
git push origin feature/v1.1/JIRA-675/add_func_xx

# Gitlab上提交merge request,请求合并入dev分支

# 请求被合并后可以删除本地分支(根据个人需要)
git checkout dev
git branch -d feature/v1.1/JIRA-675/add_func_xx

同步代码

每次开发(或Bug Fix)前,建议同步一次代码;最好在推送前再同步一下,避免merge conflict。

以在dev分支上进行开发为例:

开发前同步:

# 检出dev分支
git checkout dev

# 同步dev分支
# “-p”:删除远端不存在的refspec,“--all”: fetch所有的远端分支
# “-r”:以变基的形式进行merge(将远程分支merge到当前所在分支),这样本地分远程的分支历史线性一致
git fetch -p --all
git pull -r

# 此时再检出feature branch
git checkout -b feature/v1.1/JIRA-678/add_func_xx

推送前同步:

# 检出dev分支
git checkout dev

# 同步dev分支
# “-p”:删除远端不存在的refspec,“--all”: fetch所有的远端分支
# “-r”:以变基的形式进行merge(将远程分支merge到当前所在分支),这样本地分远程的分支历史线性一致
git fetch -p --all
git pull -r

# 在最新的dev分支上对feature branch进行变基,如果有conflict,进行fix
git rebase dev feature/v1.1/JIRA-678/add_func_xx

# 此时进行推送
git push origin feature/v1.1/JIRA-678/add_func_xx 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值