SlideShare a Scribd company logo
用GIT-FLOW标准化GIT工作流程
蒋良俊
GIT-FLOW
¡ 基于GIT的插件
¡ 标准化常用分支,比如master, develop, feature,hotfix and release
¡ 同样的GIT命令,加一点点修改
¡ 来自Vincent Driesser的博客
¡ 非常受欢迎
*图片来自http://nvie.com/posts/a-successful-git-branching-model/
GIT-FLOW 提要
¡ 理论上,只有两个存档的分支, master, develop
¡ 所有的功能分支在各自feature分支
¡ 支持提交给测试的分支(release)和发布后紧急修复的分支 (hotfix)
¡ 基于merging
为什么是GIT-FLOW
¡ 符合我们的工作习惯
¡ 标准化的工作流程
¡ 比较容易接受并在实际工作中使用
¡ 与其它流行的项目管理工具集成度较高
¡ 比较流行
如何开始
¡ 下载并安装git flow 插件
¡ 运行 git flow init (假设该项目已经用git)
¡ git-flow 自动为我们创建master - production release & develop - next release分支
¡ 自动为如下3个分支创建分支名前缀 feature,hotfix, release
¡ 演示
如何开始 - FEATURE 分支
¡ 假设使用场景,我-开发者,收到新任务,实现集成Zendesk android SDK的功能
¡ $git flow feature start ZendeskIntegration
¡ 一个本地的feature/ZendeskIntegration分支被创建
¡ 来自develop分支
¡ 很幸运,2个小时后,我完成了本功能
¡ $git commit -a -m “zendesk integration in place”
¡ $git flow feature finish ZendeskIntegration
¡ 最终,只有develop分支有我刚实施的功能
¡ $git push origin develop *http://www.slide share .net/frangarcia/git-and -git-flow
如何开始 - FEATURE 分支(CONT’D)
$git flow feature start ZendeskIntegration
==
$git checkout develop
$git branch feature/ZendeskIntegration
$git checkout feature/ZendeskIntegration
$git flow feature finish ZendeskIntegartion
==
$git checkout develop
$git merge –no-diff feature/ZendeskIntegration
$git branch –d feature/ZendeskIntegration
最后,$git push origin develop
如何开始 - RELEASE
¡ Release分支,可以理解成测试分支
¡ 使用场景,我们完成了很多重要功能,可以发布版本1.4了
¡ $git flow release start v1.4
¡ 我们把该分支的app交给测试人员测试,测试人员提出了反馈,我们修改,直到没有问题
¡ $git commit –m “fix bugs for v1.4 release”
¡ $git flow release finish v1.4
¡ master & develop分支会都得到该分支的更新
¡ 别忘了更新远程分支
¡ $git flow push origin master|develop
如何开始-HOTFIX
¡ 使用场景,我们的app 版本1.4发布了,出现了bug,我们需要修复
¡ $git flow hotfix start CrashOnSyncing
¡ $git commit –a –m “fixed a bug causing app crashes when syncing ble data”
¡ $git flow hotfix finish CrashOnSyncing
¡ 本地的master和develop分支都有这次修复
¡ $git push origin master|develop
为什么需要HOTFIX或者RELEASE
¡ Develop分支就如不断前行的列车,每天都有新功能加入
¡ Master分支是一个个由版本号控制的车站
¡ Master分支是产品分支,按期发布
¡ Release|hotfix 分支保证我们不把新增加的develop分支功能和以发布的功能混淆;从而避免引入更多的bug
¡ Release|hotfix同时也保证develop分支能及时拿到修改的内容
及时更新你的本地分支
¡ 你在自己的feature分支上
¡ $git checkout develop (也许是你准备开始工作前做的第一件事)
¡ $git pull
¡ $git checkout feature/ZendeskIntegration
¡ $git merge develop
¡ 你在自己的hotfix分支上
¡ $git checkout master
¡ $git pull
¡ $git checkout hotfix CrashOnSyning
¡ $git mege master
发布你本地的分支到远程
场景:我一天完成不了这个功能
$git flow feature|hotfix|release publish ZendeskIntegration
场景:我需要神一样的队友来帮助
$git checkout –b feature/ZendeskIntegration orgin/feature/ZendeskIntegration
你已经知道如何消灭本地不用的分支 (hint: git flow feature|hotfix|release finish branch-name)
消灭远程的不用的分支
$git push origin :feature/ZendeskIntegration
GIT-FLOW适用于
¡ 参与人数较多(3人以上)
¡ 大型项目
¡ 发布有明显版本号的项目,如移动apps
*图片来自http://nvie.com/posts/a-successful-git-branching-model/
标准化GIT工作流程
¡ git-flow
¡ gitlab-flow
¡ github-flow
¡ stash-flow
从你的下一个小项目开始
参考资料
¡ http://nvie.com/posts/a-successful-git-branching-model/
¡ Slideshare links: git flow & git, git-flow & pull-requests

More Related Content

What's hot

git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
Will Huang
 
簡介 GitHub 平台
簡介 GitHub 平台簡介 GitHub 平台
簡介 GitHub 平台
Will Huang
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
Mu Chun Wang
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
Bo-Yi Wu
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
Will Huang
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
Alan Tsai
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
唯 李
 
Git
GitGit
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理
Pu Lee
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
Chin-Yu Ku
 
Intro to Git 投影片
Intro to Git 投影片Intro to Git 投影片
Intro to Git 投影片
Tony Yeh
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
 
Android 程式設計(4)
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
Roy Wang
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
Jui An Huang (黃瑞安)
 
Gitlab
GitlabGitlab
Gitlab
Tom Chen
 
Tdd with rspec.md
Tdd with rspec.mdTdd with rspec.md
Tdd with rspec.md
Leo Chang
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
Bo-Yi Wu
 
初探Jenkins
初探Jenkins初探Jenkins
初探Jenkins
Huang Bruce
 

What's hot (18)

git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
 
簡介 GitHub 平台
簡介 GitHub 平台簡介 GitHub 平台
簡介 GitHub 平台
 
Git 經驗分享
Git 經驗分享Git 經驗分享
Git 經驗分享
 
Git flow 與團隊合作
Git flow 與團隊合作Git flow 與團隊合作
Git flow 與團隊合作
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
工程師必備第一工具 - Git
工程師必備第一工具 - Git工程師必備第一工具 - Git
工程師必備第一工具 - Git
 
Git and git hub
Git and git hubGit and git hub
Git and git hub
 
Git
GitGit
Git
 
Git Flow 管理
Git Flow 管理Git Flow 管理
Git Flow 管理
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Intro to Git 投影片
Intro to Git 投影片Intro to Git 投影片
Intro to Git 投影片
 
寫給大家的 Git 教學
寫給大家的 Git 教學寫給大家的 Git 教學
寫給大家的 Git 教學
 
Android 程式設計(4)
Android 程式設計(4)Android 程式設計(4)
Android 程式設計(4)
 
Git 版本控制 (使用教學)
Git 版本控制 (使用教學)Git 版本控制 (使用教學)
Git 版本控制 (使用教學)
 
Gitlab
GitlabGitlab
Gitlab
 
Tdd with rspec.md
Tdd with rspec.mdTdd with rspec.md
Tdd with rspec.md
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
初探Jenkins
初探Jenkins初探Jenkins
初探Jenkins
 

Viewers also liked

SMeGPAus
SMeGPAusSMeGPAus
SMeGPAus
Sylvia Kauer
 
Higiene presentacion anyiberth montero
Higiene presentacion anyiberth monteroHigiene presentacion anyiberth montero
Higiene presentacion anyiberth montero
Anyibeth Montero
 
Diaspositivas higiene
Diaspositivas higieneDiaspositivas higiene
Diaspositivas higiene
Anyibeth Montero
 
Diseño empresarial anyiberth montero
Diseño empresarial anyiberth monteroDiseño empresarial anyiberth montero
Diseño empresarial anyiberth montero
Anyibeth Montero
 
Urban Growing-Lettuce
Urban Growing-LettuceUrban Growing-Lettuce
Urban Growing-Lettuce
Candace Stottle
 
แคตตาล็อคบางปู
แคตตาล็อคบางปูแคตตาล็อคบางปู
แคตตาล็อคบางปู
poklim
 
Orange County Convention Center and Urban Growing with ZMS
Orange County Convention Center and Urban Growing with ZMSOrange County Convention Center and Urban Growing with ZMS
Orange County Convention Center and Urban Growing with ZMS
Candace Stottle
 
OCCC Update on Zen Management Solutions Urban Farm Project
OCCC Update on Zen Management Solutions Urban Farm ProjectOCCC Update on Zen Management Solutions Urban Farm Project
OCCC Update on Zen Management Solutions Urban Farm Project
Candace Stottle
 
Rifky hermawan
Rifky hermawanRifky hermawan
Rifky hermawan
rifky12
 
socio-cultural change
socio-cultural changesocio-cultural change
socio-cultural change
Mannylyn Delgado
 
ZMS Vision Gardens II
ZMS Vision Gardens IIZMS Vision Gardens II
ZMS Vision Gardens II
Candace Stottle
 
What new-in-android-development-tools-googleio2016
What new-in-android-development-tools-googleio2016What new-in-android-development-tools-googleio2016
What new-in-android-development-tools-googleio2016
Liangjun Jiang
 
Urban Growing Herbs
Urban Growing HerbsUrban Growing Herbs
Urban Growing Herbs
Candace Stottle
 
Traditii de iarna
Traditii de iarnaTraditii de iarna
Traditii de iarna
rucsi_coca
 

Viewers also liked (16)

SMeGPAus
SMeGPAusSMeGPAus
SMeGPAus
 
Higiene presentacion anyiberth montero
Higiene presentacion anyiberth monteroHigiene presentacion anyiberth montero
Higiene presentacion anyiberth montero
 
Worschatz
WorschatzWorschatz
Worschatz
 
Diaspositivas higiene
Diaspositivas higieneDiaspositivas higiene
Diaspositivas higiene
 
Diseño empresarial anyiberth montero
Diseño empresarial anyiberth monteroDiseño empresarial anyiberth montero
Diseño empresarial anyiberth montero
 
Urban Growing-Lettuce
Urban Growing-LettuceUrban Growing-Lettuce
Urban Growing-Lettuce
 
แคตตาล็อคบางปู
แคตตาล็อคบางปูแคตตาล็อคบางปู
แคตตาล็อคบางปู
 
Orange County Convention Center and Urban Growing with ZMS
Orange County Convention Center and Urban Growing with ZMSOrange County Convention Center and Urban Growing with ZMS
Orange County Convention Center and Urban Growing with ZMS
 
OCCC Update on Zen Management Solutions Urban Farm Project
OCCC Update on Zen Management Solutions Urban Farm ProjectOCCC Update on Zen Management Solutions Urban Farm Project
OCCC Update on Zen Management Solutions Urban Farm Project
 
Rifky hermawan
Rifky hermawanRifky hermawan
Rifky hermawan
 
socio-cultural change
socio-cultural changesocio-cultural change
socio-cultural change
 
Allen iverson
Allen iversonAllen iverson
Allen iverson
 
ZMS Vision Gardens II
ZMS Vision Gardens IIZMS Vision Gardens II
ZMS Vision Gardens II
 
What new-in-android-development-tools-googleio2016
What new-in-android-development-tools-googleio2016What new-in-android-development-tools-googleio2016
What new-in-android-development-tools-googleio2016
 
Urban Growing Herbs
Urban Growing HerbsUrban Growing Herbs
Urban Growing Herbs
 
Traditii de iarna
Traditii de iarnaTraditii de iarna
Traditii de iarna
 

Similar to Use Git-flow Manage Your Git Workflow

Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
Nelson Tai
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
icy leaf
 
Git入门与实践
Git入门与实践Git入门与实践
Git入门与实践
LC2009
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Cloud Tu
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
Ho Kim
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Wen-Tien Chang
 
Version control0221
Version control0221Version control0221
Version control0221
jianhongciou
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
PingLun Liao
 
Github簡介
Github簡介Github簡介
Github簡介
Radian Jheng
 
Git版本管理控管實戰
Git版本管理控管實戰Git版本管理控管實戰
Git版本管理控管實戰
Claire Chang
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
medcl
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
Charles Tang
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
鵬 大
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
奕浦 郭
 
Git
GitGit
Git
EthanTu
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
flylon
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
Bachue Zhou
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
Alex Su
 
Learn git
Learn gitLearn git
Learn git
甘 李
 

Similar to Use Git-flow Manage Your Git Workflow (20)

Git in a nutshell
Git in a nutshellGit in a nutshell
Git in a nutshell
 
Git 入门实战
Git 入门实战Git 入门实战
Git 入门实战
 
Git入门与实践
Git入门与实践Git入门与实践
Git入门与实践
 
Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)Git tutorial for windows user (給 Windows user 的 Git 教學)
Git tutorial for windows user (給 Windows user 的 Git 教學)
 
Git Essence Tutorial
Git Essence TutorialGit Essence Tutorial
Git Essence Tutorial
 
Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀Git 版本控制系統 -- 從微觀到宏觀
Git 版本控制系統 -- 從微觀到宏觀
 
Version control0221
Version control0221Version control0221
Version control0221
 
Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹Git 程式碼版本控制軟體介紹
Git 程式碼版本控制軟體介紹
 
Github簡介
Github簡介Github簡介
Github簡介
 
Git版本管理控管實戰
Git版本管理控管實戰Git版本管理控管實戰
Git版本管理控管實戰
 
Git 使用介绍
Git 使用介绍Git 使用介绍
Git 使用介绍
 
Git原理与实战 201607
Git原理与实战 201607Git原理与实战 201607
Git原理与实战 201607
 
Git Tutorial 教學
Git Tutorial 教學Git Tutorial 教學
Git Tutorial 教學
 
GIT實務操作與理論
GIT實務操作與理論GIT實務操作與理論
GIT實務操作與理論
 
Git 入門與實作
Git 入門與實作Git 入門與實作
Git 入門與實作
 
Git
GitGit
Git
 
Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)Git 超簡單學習懶人包(軟體程式版本控管系統)
Git 超簡單學習懶人包(軟體程式版本控管系統)
 
COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報COSCUP 2015 開源之道-Git工作坊教學簡報
COSCUP 2015 開源之道-Git工作坊教學簡報
 
How to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B serviceHow to integrate GitLab CICD into B2B service
How to integrate GitLab CICD into B2B service
 
Learn git
Learn gitLearn git
Learn git
 

Use Git-flow Manage Your Git Workflow