git flow

sanlanlan 2021-2-9 标签: git 浏览:1897 评论:0

简介

    Gitflow是git的一种规范模型。不同的分支分配一个很明确的角色,并定义了分支之间如何进行交互。
    Git flow 提供了极出色的命令帮忙以及输出提示。
    Sourcetree 是一个极出色的 git 界面客户端,已经提供了 git-flow 的支持。

    gitflow0.png


gitflow 原理图

  点击查看原图  

Gitflow 分支

    develop:

这个分支是我们是的主开发分支,包含所有要发布到下一个Release的代码,master 要发布都是 merge 这个分支。在开发过程中主要合并与其他分支,如Feature分支。

    // create develop or checkout develop


    git branch develop
    git push -u origin develop

    //如果已存在,本地直接checkout 就好
    git clone ssh://user@host/path/xxx.git
    git checkout -b develop origin/develop

    master:

    发布分支,这个分支一般不会做开发使用。

   

    gitflow2.png

    开发项目过程中使用的分支:
    Feature branches
    Release branches
    Hotfix branches

    (a) Feature branches

    每个功能对应自己的一个分支。命名规范:feature /* or feature-* 

     功能开发不是从master分支上拉出新分支,而是在develop分支拉出来。当新功能完成时,合并回develop分支。新功能提交不应该直接与master分支交互。

    // git 操作 

    git checkout -b yourfeature develop


    git status
    git add .     //git add --all
    git commit -a -m 'messige'


    git checkout develop
    git pull origin develop


    git merge your-feature  -m 'messige'  (or git merge --no-ff your-feature)

    git push origin develop (or git push)

    git branch -d your-feature

    (b) Release branches

    发布分支,命名规范为:release-* or release/*

    当你需要一个发布一个新Release的时候,在develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支.

    //git 操作

    git checkout -b release-0.1 develop

    git checkout master

    git merge release-0.1  -m 'messige' (or git merge --no-ff release-0.1 )
    git push

    git checkout develop

    git merge release-0.1  -m 'messige' (or git merge --no-ff release-0.1.0 )
    git push

    git branch -d release-0.1

    //如果需要打标签

    git tag -a 0.1 -m "Initial public release" master
    git push --tags

    (c) Hotfix branches

    bug 分支,一般用于线上或者紧急bug 修改 才会使用这个分支。注意:它的分支是从master 拉出来的。命名规范:hotfix-*或hotfix/*

    //git 操作

    git checkout -b hotfix-0.1.1 master   

    git checkout master

    git merge --no-ff hotfix-0.1.1 -m 'messige' (or git merge -m 'messige')
    git push

    git checkout develop

    git merge --no-ff hotfix-0.1.1 -m 'messige' (or git merge -m 'messige')
    git push

    git branch -d hotfix-0.1.1

    //tag
    git tag -a v0.1.1 master 
    git push --tags


以上是git flow 的简单运用,具体可以参照:

原出处:http://nvie.com/posts/a-successful-git-branching-model/

    


本文相关标签: git gitflow

发表评论: