GitFlow工作流

GitFlow工作流原文地址,点击访问

GitFlow工作流

1.各个分支及其作用

  1. master分支存放所有正式发布的版本,可以作为项目历史版本记录分支,不直接提交代码。
  2. develop分支为主开发分支,一般不直接提交代码,新功能的开发基于此分支创建新的feature分支进行开发。
  3. feature分支为新功能分支,feature分支都是基于develop创建的,开发完成后会合并到develop分支上。同时存在多个
  4. release分支基于最新develop分支创建,当新功能足够发布一个新版本(或者接近新版本发布的截止日期),从develop分支创建一个release分支作为新版本的起点,用于测试,所有的测试bug在这个分支改。测试完成后合并到master并打上版本号,同时也合并到develop,更新最新开发分支。(一旦打了release分支之后不要从develop分支上合并新的改动到release分支),同一时间只有1个,生命周期很短,只是为了发布。
  5. hotfix分支基于master分支创建,对线上版本的bug进行修复,完成后直接合并到master分支和develop分支,如果当前还有新功能release分支,也同步到release分支上。同一时间只有1个,生命周期较短

2.开发流程

  1. 第一步为master分支配套一个develop分支。简单来做可以本地创建一个空的develop分支,push到服务器上:

    git branch –b develop
    git push -u origin develop
    

    以后这个分支将会包含了项目的全部历史,而master分支将只包含了部分历史。其它开发者这时应该克隆中央仓库,建好develop分支的跟踪分支:

    git clone ssh://user@host/path/to/repo.git
    git checkout -b develop origin/develop
    
  2. 现在每个开发都有了这些历史分支的本地拷贝。从develop分支拉一个特性分支进行开发

    git checkout -b some-feature develop
    git push(如果这个功能需要多个人协作,建议push)
    

    用老套路添加提交到各自功能分支上:编辑、暂存、提交:

    git status
    git add
    git commit
    git push(如果这个功能需要多个人协作)
    

    添加了提交后,如果团队使用Pull Requests,这时候可以发起一个,用于合并到develop分支。否则就直接合并到本地的develop分支后push到中央仓库,第一条命令在合并功能前确保develop分支是最新的。

    注意,功能决不应该直接合并到master分支!!!

    git pull origin develop
    git checkout develop
    git merge some-feature
    git push
    git branch -d some-feature
    git push origin --delete some-feature (如果这个功能需要多个人协作)
    
  3. 然后用一个新的分支来做发布准备。这一步也确定了发布的版本号:

    git checkout -b release-1.0.0 develop
    

    这个分支是清理发布、执行所有测试、更新文档和其它为下个发布做准备操作的地方,像是一个专门用于改善发布的功能分支。只要创建这个分支并push到中央仓库,这个发布就是功能冻结的。任何不在develop分支中的新功能都推到下个发布循环中。

  4. 一旦准备好了对外发布,合并修改到master分支和develop分支上,删除发布分支。

    git checkout master
    git merge release-1.0.0
    git push
    git checkout develop
    git merge release-1.0.0
    git push
    git branch -d release-1.0.0
    git push origin --delete release-1.0.0
    

    发布分支是作为功能开发(develop分支)和对外发布(master分支)间的缓冲。只要有合并到master分支,就应该打好Tag以方便跟踪。

    git tag -a 1.0.0 -m "Initial public release" master
    git push --tags
    
  5. 对外发布后,发现了当前版本的一个Bug,从master分支上拉出了一个Hotfix分支,提交修改以解决问题,然后直接合并回master分支

    git checkout -b issue-#001 master
    Fix the bug…..
    git checkout master
    git merge issue-#001
    git push
    

    就像发布分支,维护分支中新加这些重要修改需要包含到develop分支中,然后才删除这个Hotfix分支

    git checkout develop
    git merge issue-#001
    git push
    git branch -d issue-#001
    

GitFlow工作流原文地址,点击访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值