Gitflow工作流通过为功能开发、发布准备和维护分配独立的分支,让发布迭代过程更流畅,非常适合用来管理大型项目的发布和维护

首先,看图

不同分支解释

  • 1.初始分支:master分支commit都应tag

  • 2.分支名 feature/*

    Feature分支做完后,必须合并回Develop分支, 合并完分支后一般会删点这个Feature分支,但是我们也可以保留

  • 3.分支名 release/*

    Release分支 基于Develop分支创建 ,打完Release分之后,我们可以在这个 Release分支上测试,修改Bug 等。同时,其它开发人员可以基于开发新的Feature (记住:一旦打了Release分支之后不要从Develop分支上合并新的改动到Release分支)

    发布Release分支时,合并Release到Master和Develop , 同时在 Master分支上打个Tag记住Release版本 号,然后可以删除Release分支了。

  • 4.分支名 hotfix/*

    hotfix分支基于Master分支创建, 开发完后需要合并回Master和Develop分支 ,同时在Master上打一个tag

命令

a.创建develop分支:

1
2
3
  git branch develop
    
  git push -u origin develop

b.开始新的feature

1
2
3
4
5
6
7
8
9
  git checkout -b feature/* develop
    
  git push -u origin feature/*
    
  git status
    
  git add file
    
  git commit

c.完成feature

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  git pull origin develop
    
  git checkout develop
    
  git merge –no-ff feature/*
    
  git push origin develop
    
  git branch -d some feature
    
  git push origin –delete feature/*

d.开始release

1
  git checkout -b release-0.10.0 develop

3.完成release

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17

git checkout master
git merge --no-ff release-0.1.0
git push
  
git checkout develop
git merge --no-ff release-0.1.0
git push
  
git branch -d release-0.1.0
  
# If you pushed branch to origin:
git push origin --delete release-0.1.0   
  
git tag -a v0.1.0 master
git push --tags
  

4.开始Hotfix

1
2
3
4
5
6
7
8
git checkout -b hotfix-0.1.1 master    

#完成Hotfix

git checkout master git merge –no-ff hotfix-0.1.1 git push

git checkout develop git merge –no-ff hotfix-0.1.1 git pushgit branch -d hotfix-0.1.1
git tag -a v0.1.1 master git push –tags 

使用git flow script

如果偏向于使用图形界面。可以使用git Kraken

安装

使用

  • 初始化: git flow init
  • 开始新Feature: git flow feature start MYFEATURE
  • Publish一个Feature(也就是push到远程): git flow feature publish MYFEATURE
  • 获取Publish的Feature: git flow feature pull origin MYFEATURE
  • 完成一个Feature: git flow feature finish MYFEATURE
  • 开始一个Release: git flow release start RELEASE [BASE]
  • Publish一个Release: git flow release publish RELEASE
  • 发布Release: git flow release finish RELEASE 别忘了git push –tags
  • 开始一个Hotfix: git flow hotfix start VERSION [BASENAME]
  • 发布一个Hotfix: git flow hotfix finish VERSION