SlideShare uma empresa Scribd logo
Controle de Versão
com Git e como
Otimizar seu Workflow
com git flow
Lucas Mezêncio | Dev In Company
18-07-2015
whoami ■ Desenvolvedor Web desde
2007
■ PHP, JavaScript, ShellScript e
Python
■ Certified Scrum Master
■ Organizador do PHP-MG
Git ■ O que é Git
■ git flow
■ Dicas
O que é Git
“cabeça dura, pessoas que acham que sempre tem
razão, argumentativas”
O que é o Git
“Git é um sistema de controle de versão distribuído
e um sistema de gerenciamento de código fonte,
com ênfase em velocidade”
http://en.wikipedia.org/wiki/Git_(software)
O que é o Git
“It's a stupid content tracker. It tracks files and
folders.

I really really designed it coming at the problem from
viewpoint of a file system person, I actually have
absolutely zero interest in creating a traditional SCM
system.”
TORVALDS, Linus
Porque o Git é bom?
■ Branching local simples
■ Tudo é local
■ Git é rápido
■ Git é pequeno
■ A área de staging
■ Distribuído
■ Vários tipos de workflows
■ Fácil de aprender
■ Uma puta comunidade
■ O que iremos ver:
■ Trabalhar com git
flow
■ Uma nova maneira
de pensar o uso do
Git
git flow
Mas pra quê? 

Git é suficiente!
Só um desenvolvedor
Imagem de: http://www.slideshare.net/Linoark/the-gitflow-way
Parece bom
Dois desenvolvedores
Imagem de: http://www.slideshare.net/Linoark/the-gitflow-way
Ainda parece bom
Realidade
Imagem de: http://www.github.com
Afinal, o que é git flow?
■ Um conjunto de extensões para o Git
■ Um branching model simples
■ Uma solução baseada em merges
Imagem de: http://nvie.com/posts/a-successful-git-branching-model/
Branches principais
■ master: pronto para a produção
■ develop: mais recente para a próxima release
Branches principais
Git inicial para criar o branch develop, inicia o
desenvolvimento
Branches de suporte
■ feature
■ release
■ hotfix
feature branches
■ Deve vir do branch develop
■ Deve voltar ao branch develop
■ Convenção de nome feature/*
feature branches
■ Criar um branch de feature
■ Quando iniciar a nova feature, partir do branch
develop

■ $ git checkout -b feature/minha-feature develop
■ ou
■ $ git flow feature start minha-feature
feature branches
■ Incorporar uma feature finalizada ao develop
■ Fazer merge no branch develop

■ $ git checkout develop
■ $ git merge --no-ff feature/minha-feature
■ $ git branch -d feature/minha-feature
■ ou
■ $ git flow feature finish minha-feature
feature branches
■ A flag --no-ff evita que informações de
histórico da feature sejam perdidas
release branches
■ Deve vir do branch develop
■ Deve voltar aos branches develop e master
■ Convenção de nome: release/*
release branches
■ Criando um branch de release
■ $ git checkout -b release/v1.0 develop
■ ou
■ $ git flow release start v1.0
■ Finalizando um branch de release
■ $ git checkout master
■ $ git merge --no-ff release/v1.0
■ $ git tag -a v1.0
■ $ git checkout develop
■ $ git merge --no-ff release/v1.0
■ $ git branch -d release/v1.0
■ ou
■ $ git flow release finish v1.0
hotfix branches
■ Deve vir do branch master
■ Deve voltar aos branches develop e master
■ Convenção de nome: hotfix/*
hotfix branches
■ Criando um branch de hotfix
■ $ git checkout -b hotfix/v1.0.1 master
■ ou
■ $ git flow hotfix start v1.0.1
■ Finalizando um branch de hotfix
■ $ git checkout master
■ $ git merge --no-ff hotfix/v1.0.1
■ $ git checkout develop
■ $ git merge --no-ff hotfix/v1.0.1
■ $ git branch -d hotfix/v1.0.1
■ ou
■ $ git flow hotfix finish v1.0.1
Comandos
Imagem de: http://danielkummer.github.io/git-flow-cheatsheet/
Dicas ■ Dicas de utilização do
Git
■ Ferramentas
Aprenda Git pela linha de comando com muito amor,
pare de usar GUI
GUI são extremamente falhos quando se tratam de merge e branching
Somente algumas pessoas devem ser autorizadas a
fazer merge do branch develop no master
para fazer a última revisão durante o merge por líderes técnicos
Confira códigos alheios pelo menos uma vez ao dia
é melhor conferir sempre que possível
Tenha certeza de que todos os testes estão
passando antes de fazer push
Não faça push de códigos não-testados, incompletos,
não-compilando, a-ser-corrigido, não-pronto-para-
deploy para o Git
faça push somente quando o código estiver pronto para deploy
Faça comentários de distinção significativas para os
commits
inclua ids de bugs ou histórias de usuário também
Nunca use a flag -m <mensagem> nos commits e siga as boas
práticas das mensagens de commit
■ Primeira linha com 50 caracteres ou menos. Ela é o resumo
■ Uma linha em branco
■ O restante do texto deve ser quebrado em 72 caracteres. Ele é a descrição detalhada
Agrupe (git squash) os commits de uma história
completa em um só antes de fazer push
nós não estamos interessados nos seus commits pessoais
Agrupe os commits de um bug fix em apenas um
commit que realmente representa aquele bug fix
Nunca agrupe componentes logicamente diferentes
em um mesmo commit
pense também no revert
Faça vários commits, perfeccione depois, publique
apenas uma vez
Use o .gitignore para não levar arquivos irrelevantes
nunca faça push de binários irrelevantes, pacotes, arquivos compilados,
arquivos temporários, arquivos relacionados ao IDE e ao SO
Sempre revise seu código antes de fazer um commit
confira o que você está enviando para a área de staging
Limpe branches não utilizados e desatualizados
e nunca exclua branches remotos que não foram mesclados
Não faça reset sem antes fazer stash ou commit
ninguém quer perder códigos, né?
Ferramentas
■ git flow: extensão para a linha de comando
■ git up: extensão para a linha de comando que
ajuda bastante na hora de fazer pull
■ http://gitup.co/: GUI que forma o graph em
tempo real
■ https://github.com/github/gitignore:
Uma coleção de templates para o .gitignore
Referências
■ http://nvie.com/posts/a-successful-git-branching-model/
■ https://www.atlassian.com/git/tutorials/comparing-
workflows/gitflow-workflow
■ http://www.slideshare.net/Linoark/the-gitflow-way
■ http://www.slideshare.net/kenziii/gitflow-model
■ http://www.slideshare.net/lemiorhan/git-branching-model
■ http://www.slideshare.net/lemiorhan/git-and-git-workflow-
models-as-catalysts-of-software-development
■ http://danielkummer.github.io/git-flow-cheatsheet/
FIM
http://about.me/lucasmezencio
http://slideshare.net/lucasmezencio

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Git e Github
Git e GithubGit e Github
Git e Github
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Controle de versão com e git
Controle de versão com e gitControle de versão com e git
Controle de versão com e git
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Git v2
Git v2Git v2
Git v2
 
Git+github
Git+githubGit+github
Git+github
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucket
 
Git
GitGit
Git
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos Git e Github - Comandos e conceitos básicos
Git e Github - Comandos e conceitos básicos
 
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012
 
Git
GitGit
Git
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
Seis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprioSeis passos para colocar um projeto local em um servidor próprio
Seis passos para colocar um projeto local em um servidor próprio
 
Mini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubMini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-github
 

Destaque

Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPPedro Chaves
 
Desbancando mitos sobre PHP e o futuro da linguagem
Desbancando mitos sobre PHP e o futuro da linguagemDesbancando mitos sobre PHP e o futuro da linguagem
Desbancando mitos sobre PHP e o futuro da linguagemPedro Chaves
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosWilliam Lima
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily useMediacurrent
 
Esqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadeEsqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadePedro Chaves
 

Destaque (6)

Facilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHPFacilitando o desenvolvimento orientado a testes em aplicações PHP
Facilitando o desenvolvimento orientado a testes em aplicações PHP
 
Jenkins
JenkinsJenkins
Jenkins
 
Desbancando mitos sobre PHP e o futuro da linguagem
Desbancando mitos sobre PHP e o futuro da linguagemDesbancando mitos sobre PHP e o futuro da linguagem
Desbancando mitos sobre PHP e o futuro da linguagem
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de Projetos
 
Git flow for daily use
Git flow for daily useGit flow for daily use
Git flow for daily use
 
Esqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdadeEsqueça a linguagem e vire um programador de verdade
Esqueça a linguagem e vire um programador de verdade
 

Semelhante a Controle de Versão com Git e como Otimizar seu Workflow com Git Flow

Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitC. Augusto Proiete
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteComunidade NetPonto
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)Carlos Duarte do Nascimento
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 
Mini curso Git - 2º dia
Mini curso Git - 2º diaMini curso Git - 2º dia
Mini curso Git - 2º diaArmando Couto
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para IniciantesIgorDiniz22
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!Vitor Silva
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareAldson Diego
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na sambajoaogmaciel
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoDjanilson Alves
 

Semelhante a Controle de Versão com Git e como Otimizar seu Workflow com Git Flow (20)

Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Mini curso Git - 2º dia
Mini curso Git - 2º diaMini curso Git - 2º dia
Mini curso Git - 2º dia
 
Git 101
Git 101Git 101
Git 101
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
 
Git
GitGit
Git
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Oficina de Git EEDACT2015
Oficina de Git EEDACT2015Oficina de Git EEDACT2015
Oficina de Git EEDACT2015
 
Git
GitGit
Git
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Git do Zero - Campus Party #12
Git do Zero - Campus Party #12Git do Zero - Campus Party #12
Git do Zero - Campus Party #12
 

Controle de Versão com Git e como Otimizar seu Workflow com Git Flow

  • 1. Controle de Versão com Git e como Otimizar seu Workflow com git flow Lucas Mezêncio | Dev In Company 18-07-2015
  • 2. whoami ■ Desenvolvedor Web desde 2007 ■ PHP, JavaScript, ShellScript e Python ■ Certified Scrum Master ■ Organizador do PHP-MG
  • 3. Git ■ O que é Git ■ git flow ■ Dicas
  • 4. O que é Git “cabeça dura, pessoas que acham que sempre tem razão, argumentativas”
  • 5. O que é o Git “Git é um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte, com ênfase em velocidade” http://en.wikipedia.org/wiki/Git_(software)
  • 6. O que é o Git “It's a stupid content tracker. It tracks files and folders.
 I really really designed it coming at the problem from viewpoint of a file system person, I actually have absolutely zero interest in creating a traditional SCM system.” TORVALDS, Linus
  • 7. Porque o Git é bom? ■ Branching local simples ■ Tudo é local ■ Git é rápido ■ Git é pequeno ■ A área de staging ■ Distribuído ■ Vários tipos de workflows ■ Fácil de aprender ■ Uma puta comunidade
  • 8. ■ O que iremos ver: ■ Trabalhar com git flow ■ Uma nova maneira de pensar o uso do Git git flow
  • 9. Mas pra quê? 
 Git é suficiente!
  • 10. Só um desenvolvedor Imagem de: http://www.slideshare.net/Linoark/the-gitflow-way
  • 12. Dois desenvolvedores Imagem de: http://www.slideshare.net/Linoark/the-gitflow-way
  • 15. Afinal, o que é git flow? ■ Um conjunto de extensões para o Git ■ Um branching model simples ■ Uma solução baseada em merges Imagem de: http://nvie.com/posts/a-successful-git-branching-model/
  • 16. Branches principais ■ master: pronto para a produção ■ develop: mais recente para a próxima release
  • 17. Branches principais Git inicial para criar o branch develop, inicia o desenvolvimento
  • 18. Branches de suporte ■ feature ■ release ■ hotfix
  • 19. feature branches ■ Deve vir do branch develop ■ Deve voltar ao branch develop ■ Convenção de nome feature/*
  • 20. feature branches ■ Criar um branch de feature ■ Quando iniciar a nova feature, partir do branch develop
 ■ $ git checkout -b feature/minha-feature develop ■ ou ■ $ git flow feature start minha-feature
  • 21. feature branches ■ Incorporar uma feature finalizada ao develop ■ Fazer merge no branch develop
 ■ $ git checkout develop ■ $ git merge --no-ff feature/minha-feature ■ $ git branch -d feature/minha-feature ■ ou ■ $ git flow feature finish minha-feature
  • 22. feature branches ■ A flag --no-ff evita que informações de histórico da feature sejam perdidas
  • 23.
  • 24.
  • 25.
  • 26. release branches ■ Deve vir do branch develop ■ Deve voltar aos branches develop e master ■ Convenção de nome: release/*
  • 27. release branches ■ Criando um branch de release ■ $ git checkout -b release/v1.0 develop ■ ou ■ $ git flow release start v1.0 ■ Finalizando um branch de release ■ $ git checkout master ■ $ git merge --no-ff release/v1.0 ■ $ git tag -a v1.0 ■ $ git checkout develop ■ $ git merge --no-ff release/v1.0 ■ $ git branch -d release/v1.0 ■ ou ■ $ git flow release finish v1.0
  • 28.
  • 29.
  • 30.
  • 31. hotfix branches ■ Deve vir do branch master ■ Deve voltar aos branches develop e master ■ Convenção de nome: hotfix/*
  • 32. hotfix branches ■ Criando um branch de hotfix ■ $ git checkout -b hotfix/v1.0.1 master ■ ou ■ $ git flow hotfix start v1.0.1 ■ Finalizando um branch de hotfix ■ $ git checkout master ■ $ git merge --no-ff hotfix/v1.0.1 ■ $ git checkout develop ■ $ git merge --no-ff hotfix/v1.0.1 ■ $ git branch -d hotfix/v1.0.1 ■ ou ■ $ git flow hotfix finish v1.0.1
  • 33.
  • 34.
  • 35.
  • 37. Dicas ■ Dicas de utilização do Git ■ Ferramentas
  • 38. Aprenda Git pela linha de comando com muito amor, pare de usar GUI GUI são extremamente falhos quando se tratam de merge e branching
  • 39. Somente algumas pessoas devem ser autorizadas a fazer merge do branch develop no master para fazer a última revisão durante o merge por líderes técnicos
  • 40. Confira códigos alheios pelo menos uma vez ao dia é melhor conferir sempre que possível
  • 41. Tenha certeza de que todos os testes estão passando antes de fazer push
  • 42. Não faça push de códigos não-testados, incompletos, não-compilando, a-ser-corrigido, não-pronto-para- deploy para o Git faça push somente quando o código estiver pronto para deploy
  • 43. Faça comentários de distinção significativas para os commits inclua ids de bugs ou histórias de usuário também
  • 44. Nunca use a flag -m <mensagem> nos commits e siga as boas práticas das mensagens de commit ■ Primeira linha com 50 caracteres ou menos. Ela é o resumo ■ Uma linha em branco ■ O restante do texto deve ser quebrado em 72 caracteres. Ele é a descrição detalhada
  • 45. Agrupe (git squash) os commits de uma história completa em um só antes de fazer push nós não estamos interessados nos seus commits pessoais
  • 46. Agrupe os commits de um bug fix em apenas um commit que realmente representa aquele bug fix
  • 47. Nunca agrupe componentes logicamente diferentes em um mesmo commit pense também no revert
  • 48. Faça vários commits, perfeccione depois, publique apenas uma vez
  • 49. Use o .gitignore para não levar arquivos irrelevantes nunca faça push de binários irrelevantes, pacotes, arquivos compilados, arquivos temporários, arquivos relacionados ao IDE e ao SO
  • 50. Sempre revise seu código antes de fazer um commit confira o que você está enviando para a área de staging
  • 51. Limpe branches não utilizados e desatualizados e nunca exclua branches remotos que não foram mesclados
  • 52. Não faça reset sem antes fazer stash ou commit ninguém quer perder códigos, né?
  • 53. Ferramentas ■ git flow: extensão para a linha de comando ■ git up: extensão para a linha de comando que ajuda bastante na hora de fazer pull ■ http://gitup.co/: GUI que forma o graph em tempo real ■ https://github.com/github/gitignore: Uma coleção de templates para o .gitignore
  • 54. Referências ■ http://nvie.com/posts/a-successful-git-branching-model/ ■ https://www.atlassian.com/git/tutorials/comparing- workflows/gitflow-workflow ■ http://www.slideshare.net/Linoark/the-gitflow-way ■ http://www.slideshare.net/kenziii/gitflow-model ■ http://www.slideshare.net/lemiorhan/git-branching-model ■ http://www.slideshare.net/lemiorhan/git-and-git-workflow- models-as-catalysts-of-software-development ■ http://danielkummer.github.io/git-flow-cheatsheet/