# git团队开发流程小结

本文总结了git在团队开发中的流程,包括master、dev、feature和release分支的使用,以及git配置代理、commit信息压缩和错误回滚的解决方法。强调了本地dev分支的纯净、代码审查的重要性及commit信息的规范。
摘要由CSDN通过智能技术生成

git开发流程总叙述

这次在公司开发项目,学到了很多东西,对很多东西都颠覆了之前的理解写这篇博客,来说下自己对git的在产品开发流程中的理解。(注:本篇博客是讲解git进阶的,如果没有用过git的人,请先看git教程)

现在我们首先给出在正式的产品发布中,标准的git的开发流程图:
这里写图片描述

我们对上述图形做个总体的说明:

  1. master分支:顾名思义,主分支,是最重要的分支,这个分支记录的代码都是成熟的,稳定的产品代码,当在beta版本的项目或是开发版本的项目得到了充分的验证之后,我才能将分支并入master分支。master分支永远是production-ready的状态,即稳定可产品化发布的状态。

  2. develop branches(dev分支):这个分支每个开发者做开发的分支,也就是我们进行功能点开发的分支,dev分支的迭代次数很多,记录了我们开发功能点,修复BUG,重构等一系列版本迭代的变化。当每次Feature branches完善后,我们可以申请merge request,然后通过leader或者测试的review,同dev进行合并。

  3. Feature branches:这个分支就是我们每次做功能点开发,fixbug,refactor所需要提交的分支,feature branches记录了我们在具体开发过程中的对项目代码的变化,当我们在features branches完成了任务后,则可以申请merge request,将自己的分支合并到dev分支

  4. release branches: 同样,这也是有多个分支组成的一个分支系列。这个分支系列从develop分支出来,也就是预发分支。在预发状态下,我们往往会在这个分支上进行打包,测试,然后由测试工程师通知开发工程师,测试之后出现的BUG,然后进行一系列的BUG修复;不断反复进行上述操作之后,BUG基本被消除,然后我们可以发布一个稳定的版本号。

  5. Hotfix branches:这个分支系列也就是我们常说的紧急线上修复,当线上出现bug且特别紧急的时候,就可以从master拉出分支到这里进行修复,修复完成后分别并入master和develop分支

平时常用的git项目开发流程

在平时开发过程中,我们一般都是用到的dev分支和Feature分支,一般的开发流程如下:
简述下上述的图:
这里写图片描述
1. 我们在本地都会有一个dev分支,当我们要进行一个功能点(这里假设为功能点1)的开发的时候,我们不要在本地dev分支上做修改,而是在本地新建一个分支(feature1),然后切换到这个分支上去,在新建的这个分支中进行功能点的开发
2. 当我们在feature1分支开发完成后,觉得功能点已经做得差不多了,我们再将这个feature1分支推到远程服务器上(注:在推之前,要保存先合并服务器最新的dev分支,避免引起冲突不能合并)。
3. 然后我们在服务器上,发起mergerequest的请求给review代码的人,将新开发的代码,交由他们来进行review
4. 如果代码没有通过review,则我们需要在本地的分支上,按照review者的意见进行修改,然后在推上服务器,直到代码通过review
5. 代码通过review后,我们写的代码就会自动地在服务器上进行合并,然后我们的代码,就会顺利地进入服务器dev分支了
6. 我们回到本地分支,因为feature1已经成功通过review了,这样的话,我们可以把本地的dev分支进同feature1分支实行合并,然后删除feature1分支了
7. 至此,我们已经按照git规范流程完成了功能点1的开发。

从以上git的流程来看,我们能明白以下这几点很重要:

  1. 本地的dev分支一定要保持纯净,时刻同服务器dev分支一样,这样方便我们回滚,查找信息
  2. 开发的新的功能点分支,推上服务器之后,也不要直接推到dev分支,而是推送到服务器的另一个分支,这样可以让同事进行review,对代码进行修改
  3. 开发分支的代码粒度要掌握合适,每次让同事进行review的时候,也方便指出代码的中的问题。
  4. 每次将功能点推上服务器之前,一定要在本地合并服务器上的最新的dev分支,并且解决冲突,这样方便服务器上面的自动合并。
  5. commit的信息一定要规范:最好是功能点名称+在这个功能点上开发任务的情况

一些git平时常用到的问题

git配置代理

在某些时候,我们的可能因为各种各样的原因,连接不上git服务器,这时候,我们需要对git配置代理,配置git代理的方法可以参照这篇连接:git使用socks代理原理和浏览器翻墙是一样的,只需要手动修改git的local.config命令就行,如果不要,再使用

git config --local --unset http.proxy 
git config --local --unset https.proxy

以上两条命令就好可以删除代理了

git commit 命令压缩:

很多时候,我们在feature分支上进行开发的时候,有可能多个commit的信息的显得比较冗杂,也许我们主要其中一个版本号代表的commit信息就好了,这时候,我们可以压缩commit信息:git rebase 压缩commit 信息这篇链接中有教程

git 错误会滚了怎么办?

平时总会进行git的回滚,这个大家都知道,可是,如果回滚错了怎么办?一不小心就把辛辛苦苦写的代码都删了,没事,git这么强的工具,肯定有办法的,我们使用

git reflog

这条命令,来查看我们的项目最完整的git commit记录,然后找到我们的想要回滚到正确的版本号,就可以了。具体教程可以查看这篇链接git 找回已删除的commit记录

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值