美文网首页
GitFlow流程

GitFlow流程

作者: JavaHub | 来源:发表于2018-05-14 15:33 被阅读0次

    定义

    1. Gitflow流程仍然使用一个中央代码仓库,它是所有开发者的信息交流中心。跟其他的工作流程一样,开发者在本地完成开发,然后再将分支代码推送到中央仓库。唯一不同的是项目中分支的结构
    2. Gitflow使用两个分支来记录项目开发的历史,而不是使用单一的master分支。在Gitflow流程中,master只是用于保存官方的发布历史,而develop分支才是用于集成各种功能开发的分支。使用版本号为master上的所有提交打标签(tag)也很方便
    3. 功能开发永远不应该直接牵扯到master
    

    流程

    1. 创建develop分支
    1. 给默认的master配备一个develop分支;种简单的做法是:让一个开发者在本地建立一个空的develop分支,然后把它推送到服务器。
    
    git branch develop
    git push -u origin develop
    
    2. develop分支将包含项目的所有历史,而master会是一个缩减版本。现在,其他开发者应该克隆(clone)中央仓库,并且为develop创建一个追踪分支。
    
    git clone ssh://user@host/path/to/repo.git
    git checkout -b develop origin/develop
    
    到现在,所有人都把包含有完整历史的分支(develop)在本地配置好了。
    
    2. 开始开发新功能
    1. 各自建立了自己的分支。注意,他们在创建分支时,父分支不能选择master,而要选择develop。
    2. 都在自己的功能开发分支上开展工作。通常就是这种Git三部曲:edit,stage,commit:
    
    git status
    git add <some-file>
    git commit
    
    3. 功能开发好了
    1. 提出一个将她所完成的功能合并入develop分支的请求。可以自行将代码合并入本地的develop分支,然后再推送到中央仓库
    
    git pull origin develop -----//确保了本地的develop分支拥有最新的代码(必须在将功能代码合并之前做)
    git checkout develop
    git merge some-feature
    git push
    git branch -d some-feature
    
    4. 第一次发布准备
    1. 使用了一个新的分支来做产品发布的准备工作(发布版本号自己可以定义)
    
    git checkout -b release-0.1 develop
    
    2. 这个分支专门用于发布前的准备,包括一些清理工作、全面的测试、文档的更新以及任何其他的准备工作。它与用于功能开发的分支相似,不同之处在于它是专为产品发布服务的
    3. 一旦创建了这个分支并把它推向中央仓库,这次产品发布包含的功能也就固定下来了。任何还处于开发状态的功能只能等待下一个发布周期
    
    5. 完成发布
    1. 一切准备就绪之后,就要把发布分支合并入master和develop分支,然后再将发布分支删除。注意,往develop分支的合并是很重要的,因为开发人员可能在发布分支上修复了一些关键的问题,而这些修复对于正在开发中的新功能是有益的。再次提醒一下,如果所在的团队强调代码评审(Code Review),此时非常适合提出这样的请求
    
    git checkout master
    git merge release-0.1
    git push
    git checkout develop
    git merge release-0.1
    git push
    git branch -d release-0.1
    
    2. 发布分支扮演的角色是功能开发(develop)与官方发布(master)之间的一个缓冲。无论什么时候你把一些东西合并入master,你都应该随即打上合适的标签。
    
    git tag -a 0.1 -m"Initial public release" master
    git push --tags
    
    6. 发布后发现BUG
    1. 突然,某个用户提出抱怨说当前发布的产品里有一个bug。为了解决这个问题,基于master创建了一个用于维护的分支。在这个分支上修复了那个bug,然后把改动的代码直接合并入master。
    
    git checkout -b issue-#001 master
    # Fix the bug
    git checkout master
    git merge issue-#001
    git push
    
    2. 跟用于发布的分支一样,在维护分支上的改动也需要合并入develop分支,这一点是很重要的!因此,务必不能忘了这一步。随后,她就可以将维护分支删除。
    
    git checkout develop
    git merge issue-#001
    git push
    git branch -d issue-#001
    
    原文链接

    相关文章

      网友评论

          本文标题:GitFlow流程

          本文链接:https://www.haomeiwen.com/subject/nhhjdftx.html