SlideShare uma empresa Scribd logo
GIT WORKFLOW
Uilian Ries
AGENDA
● Git workflow
○ Gitflow
○ Gitlab Flow
○ Github Flow
● Boas práticas
● Gitlab + Documentação
● Onde praticar
● Conclusão
Git Workflow
○ Git é uma extensa caixa de ferramentas
○ Workflow determina como operar em cada situação
Git Flow
Git Flow
● Utiliza branches master e develop
● Branch master somente para
estável
● Branch develop para
desenvolvimento
● Feature branch para nova feature
● Release branch para nova release
● Hotfix pode entrar direto no master
● Prós
○ Bem estabelecido e
padronizado
● Contras
○ Complexo de ser mantido
Github Flow
Github Flow
● Utiliza apenas branch master
● Novo branch para feature e hotfix
● Feature e hotfix fundem direto no
master
● Prós
○ Simples
○ Rápida entra para SaaS
● Contras
○ Não explica como resolver
ambiente, deployment, CI ...
Gitlab Flow
Gitlab Flow
● Utiliza três categorias de branch
○ Ambiente
○ Produção
○ Release
● Master branch como principal
● Feature e hotfix fundem direto no
master
● Aplica cherry-pick para promoção
● Prós
○ Simples
○ Controle em produção
● Contras
○ Difícil de praticar sem gitlab
Gitlab Flow
Production
Gitlab Flow
Environment
Gitlab Flow
Release
Commit mudanças relacionadas
● 1 commit = 1 mudança
● commit pequeno = fácil entendimento
● commit pequeno = fácil rollback
Teste antes de commitar
● Resista a tentação do commit
incompleto
● Git possui hooks
Teste antes de commitar
● gitlab-runner exec docker <job>
● .git/hooks/pre-commit
Utilize branches
● Evite a bagunça, use branch
● feature, hotfix, release, enhancement
Escreva boas mensagens
● Título curto, corpo detalhado
● Qual é o valor desse commit?
● O que motivou a mudança?
● Em geral use tempo presente
● Regra 50-72
Exemplos de mensagens
commit 5426da5180f0e2b85e61d055f384d290045963f4
Author: Uilian Ries <uilianries@gmail.com>
Date: Wed Mar 14 18:12:26 2018 -0300
Preciso de óculos novos
Exemplos de mensagens
commit 50dca190e22ada686e48bbcf0fe6129851f4113e
Author: Uilian Ries <uilianries@gmail.com>
Date: Wed Mar 14 18:12:26 2018 -0300
#42 Ativação de gateway por número de série
- Feature consiste em ativar qualquer gateway com número de série
válido, através de código gerado pelo servidor.
- Código de ativação é formado por 6 números e expira a cada 15 min
- Para que o código seja gerado, o cadastro precisa estar pronto. Ver #22
Faça commit com frequência
● Alta frequência = commit pequeno
● Facilita resolução de conflitos
● Permite compartilhar com frequência
Não faça commit de trabalho incompleto
● Commit somente trabalho completo
● Features complexas podem ser
quebradas em blocos
● Não faça commit antes de ir pra casa
Controle de versão != Sistema de backup
● Evite commitar binários
Adote um workflow
● Evite problemas de comunicação
● Utilize o mesmo workflow com o time
Gitlab + Documentação
● Gitlab consegue comparar texto puro
● Arquivos binários não são suportados
● Exemplo
○ gitlab.com/uilianries/documentation
Onde posso aprender git na prática?
● https://learngitbranching.js.org/
● https://try.github.io
Onde posso obter uma cola?
● git-tower.com/blog/git-cheat-sheet
Conclusão
● Commit mudanças relacionadas
● Commit com frequência
● Utilize branches
● Teste antes de commitar
● Escreva mensagem de valor
● Não faça meio-commit
● SCM não é backup
● Siga um workflow
Referências
● git-scm.com/book/en/v2/
● git-tower.com/
● nvie.com/posts/a-successful-git-branching-model/
● guides.github.com/introduction/flow/
● docs.gitlab.com/ce/workflow/gitlab_flow
Git Workflow

Mais conteúdo relacionado

Mais procurados

Entrega contínua com github e windows azure
Entrega contínua com github e windows azureEntrega contínua com github e windows azure
Entrega contínua com github e windows azure
Luis Rudge
 
Scrum e a Espiral Positiva
Scrum e a Espiral PositivaScrum e a Espiral Positiva
Scrum e a Espiral Positiva
Douglas Aguiar
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Edison Costa
 
Conhecendo Angular 2
Conhecendo Angular 2Conhecendo Angular 2
Conhecendo Angular 2
Lab 1024
 
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GITMontando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Leo Baiano
 
Usando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipeUsando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipe
Juancito Arias
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Ivan Paulovich
 
Apresentação rest api
Apresentação rest apiApresentação rest api
Apresentação rest api
Matheus Petroni
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
Mateus Padua
 
Do Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso RealDo Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso Real
Thiago Bertuzzi
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
Renato Groff
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Tiago Hillebrandt
 
Learn about Git - Git Tutorial
Learn about Git - Git TutorialLearn about Git - Git Tutorial
Learn about Git - Git Tutorial
Lucas Brigida
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
Diogo Gomes
 
React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...
Emiliano Barbosa
 
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPIMVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
Andre Baltieri
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
Hanneli Tavante
 
Angular Extreme Performance
Angular  Extreme PerformanceAngular  Extreme Performance
Angular Extreme Performance
Gustavo Costa
 
O futuro do asp.net mvc
O futuro do asp.net mvcO futuro do asp.net mvc
O futuro do asp.net mvc
Victor Cavalcante
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
André Minelli
 

Mais procurados (20)

Entrega contínua com github e windows azure
Entrega contínua com github e windows azureEntrega contínua com github e windows azure
Entrega contínua com github e windows azure
 
Scrum e a Espiral Positiva
Scrum e a Espiral PositivaScrum e a Espiral Positiva
Scrum e a Espiral Positiva
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
 
Conhecendo Angular 2
Conhecendo Angular 2Conhecendo Angular 2
Conhecendo Angular 2
 
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GITMontando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
Montando um ambiente de desenvolvimento WordPress utilizando Composer e GIT
 
Usando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipeUsando git e scrum para trabalhar em equipe
Usando git e scrum para trabalhar em equipe
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
 
Apresentação rest api
Apresentação rest apiApresentação rest api
Apresentação rest api
 
Iniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e BowerIniciando com Yeoman, Grunt e Bower
Iniciando com Yeoman, Grunt e Bower
 
Do Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso RealDo Azure Devops ao Github Actions, Caso Real
Do Azure Devops ao Github Actions, Caso Real
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Learn about Git - Git Tutorial
Learn about Git - Git TutorialLearn about Git - Git Tutorial
Learn about Git - Git Tutorial
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...React Native - Experiência Nativa para o usuário e experiência Web para o des...
React Native - Experiência Nativa para o usuário e experiência Web para o des...
 
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPIMVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
MVP ShowCast 2014 - Desenvolvendo APIs com WebAPI
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Angular Extreme Performance
Angular  Extreme PerformanceAngular  Extreme Performance
Angular Extreme Performance
 
O futuro do asp.net mvc
O futuro do asp.net mvcO futuro do asp.net mvc
O futuro do asp.net mvc
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 

Semelhante a Git Workflow

Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
Bruno Orlandi
 
Drupal camp campinas 2016 superando o gitflow (luiz henrique guerra)
Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Drupal camp campinas 2016 superando o gitflow (luiz henrique guerra)
Luiz Henrique Guerra
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Lucas Araújo Mezêncio
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
Marcos Antônio de Souza Silva
 
BlingTech - Gitlab
BlingTech - GitlabBlingTech - Gitlab
BlingTech - Gitlab
Fernando Henrique
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
Guilherme Henrique Rodrigues
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
Rodrigo Long Chen Kashiwakura
 
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Leonardo Ferreira Leite
 
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
minastestingconference
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
Samanta Cicilia
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
Samanta Cicilia
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
Claudinei Brito Junior
 
Pipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotPipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbot
Lappis UnB
 
Git Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differencesGit Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differences
Suelen Carvalho
 
Git 101
Git 101Git 101
Git 101
ngmachado
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
Gilson Junior
 
Modelo de branches e GitFlow
Modelo de branches e GitFlowModelo de branches e GitFlow
Modelo de branches e GitFlow
João Pedro Benedetti Misturini
 
Git v2
Git v2Git v2
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
IgorDiniz22
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
Vitor Silva
 

Semelhante a Git Workflow (20)

Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Drupal camp campinas 2016 superando o gitflow (luiz henrique guerra)
Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)Drupal camp campinas 2016   superando o gitflow (luiz henrique guerra)
Drupal camp campinas 2016 superando o gitflow (luiz henrique guerra)
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
BlingTech - Gitlab
BlingTech - GitlabBlingTech - Gitlab
BlingTech - Gitlab
 
Ferramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando gitFerramentas para versionamento Utilizando git
Ferramentas para versionamento Utilizando git
 
Secomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao ElixirSecomp 2018 - DO Ruby ao Elixir
Secomp 2018 - DO Ruby ao Elixir
 
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...Do commit à produção: integração contínua e entrega contínua no pipeline de i...
Do commit à produção: integração contínua e entrega contínua no pipeline de i...
 
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
Introducao ao Git
Introducao ao GitIntroducao ao Git
Introducao ao Git
 
Pipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbotPipeline de deploy continuo (DevOps) de chatbot
Pipeline de deploy continuo (DevOps) de chatbot
 
Git Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differencesGit Merge e Rebase - The goal and differences
Git Merge e Rebase - The goal and differences
 
Git 101
Git 101Git 101
Git 101
 
Workshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHubWorkshop de Introdução ao Git GitHub
Workshop de Introdução ao Git GitHub
 
Modelo de branches e GitFlow
Modelo de branches e GitFlowModelo de branches e GitFlow
Modelo de branches e GitFlow
 
Git v2
Git v2Git v2
Git v2
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 

Mais de Uilian Ries

Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
Uilian Ries
 
Conan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersConan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for Developers
Uilian Ries
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
Uilian Ries
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.io
Uilian Ries
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++
Uilian Ries
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package Manager
Uilian Ries
 
Software Development Tools for C/C++
Software Development Tools for C/C++Software Development Tools for C/C++
Software Development Tools for C/C++
Uilian Ries
 
Testes Unitários com GTest e Catch
Testes Unitários com GTest e CatchTestes Unitários com GTest e Catch
Testes Unitários com GTest e Catch
Uilian Ries
 
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
Uilian Ries
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
Uilian Ries
 
Unisinos - Proposta TCC 2015
Unisinos - Proposta TCC 2015Unisinos - Proposta TCC 2015
Unisinos - Proposta TCC 2015
Uilian Ries
 

Mais de Uilian Ries (11)

Gitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CIGitlab - Creating C++ applications with Gitlab CI
Gitlab - Creating C++ applications with Gitlab CI
 
Conan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for DevelopersConan.io - The C/C++ package manager for Developers
Conan.io - The C/C++ package manager for Developers
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Meetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.ioMeetup C++ Floripa - Conan.io
Meetup C++ Floripa - Conan.io
 
Poco Bibliotecas C++
Poco Bibliotecas C++Poco Bibliotecas C++
Poco Bibliotecas C++
 
Conan a C/C++ Package Manager
Conan a C/C++ Package ManagerConan a C/C++ Package Manager
Conan a C/C++ Package Manager
 
Software Development Tools for C/C++
Software Development Tools for C/C++Software Development Tools for C/C++
Software Development Tools for C/C++
 
Testes Unitários com GTest e Catch
Testes Unitários com GTest e CatchTestes Unitários com GTest e Catch
Testes Unitários com GTest e Catch
 
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++SECCOM 2017 - Conan.io o gerente de pacote para C e C++
SECCOM 2017 - Conan.io o gerente de pacote para C e C++
 
Elements of C++11
Elements of C++11Elements of C++11
Elements of C++11
 
Unisinos - Proposta TCC 2015
Unisinos - Proposta TCC 2015Unisinos - Proposta TCC 2015
Unisinos - Proposta TCC 2015
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 

Último (8)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 

Git Workflow

  • 2. AGENDA ● Git workflow ○ Gitflow ○ Gitlab Flow ○ Github Flow ● Boas práticas ● Gitlab + Documentação ● Onde praticar ● Conclusão
  • 3. Git Workflow ○ Git é uma extensa caixa de ferramentas ○ Workflow determina como operar em cada situação
  • 5. Git Flow ● Utiliza branches master e develop ● Branch master somente para estável ● Branch develop para desenvolvimento ● Feature branch para nova feature ● Release branch para nova release ● Hotfix pode entrar direto no master ● Prós ○ Bem estabelecido e padronizado ● Contras ○ Complexo de ser mantido
  • 7. Github Flow ● Utiliza apenas branch master ● Novo branch para feature e hotfix ● Feature e hotfix fundem direto no master ● Prós ○ Simples ○ Rápida entra para SaaS ● Contras ○ Não explica como resolver ambiente, deployment, CI ...
  • 9. Gitlab Flow ● Utiliza três categorias de branch ○ Ambiente ○ Produção ○ Release ● Master branch como principal ● Feature e hotfix fundem direto no master ● Aplica cherry-pick para promoção ● Prós ○ Simples ○ Controle em produção ● Contras ○ Difícil de praticar sem gitlab
  • 13. Commit mudanças relacionadas ● 1 commit = 1 mudança ● commit pequeno = fácil entendimento ● commit pequeno = fácil rollback
  • 14. Teste antes de commitar ● Resista a tentação do commit incompleto ● Git possui hooks
  • 15. Teste antes de commitar ● gitlab-runner exec docker <job> ● .git/hooks/pre-commit
  • 16. Utilize branches ● Evite a bagunça, use branch ● feature, hotfix, release, enhancement
  • 17. Escreva boas mensagens ● Título curto, corpo detalhado ● Qual é o valor desse commit? ● O que motivou a mudança? ● Em geral use tempo presente ● Regra 50-72
  • 18. Exemplos de mensagens commit 5426da5180f0e2b85e61d055f384d290045963f4 Author: Uilian Ries <uilianries@gmail.com> Date: Wed Mar 14 18:12:26 2018 -0300 Preciso de óculos novos
  • 19. Exemplos de mensagens commit 50dca190e22ada686e48bbcf0fe6129851f4113e Author: Uilian Ries <uilianries@gmail.com> Date: Wed Mar 14 18:12:26 2018 -0300 #42 Ativação de gateway por número de série - Feature consiste em ativar qualquer gateway com número de série válido, através de código gerado pelo servidor. - Código de ativação é formado por 6 números e expira a cada 15 min - Para que o código seja gerado, o cadastro precisa estar pronto. Ver #22
  • 20. Faça commit com frequência ● Alta frequência = commit pequeno ● Facilita resolução de conflitos ● Permite compartilhar com frequência
  • 21. Não faça commit de trabalho incompleto ● Commit somente trabalho completo ● Features complexas podem ser quebradas em blocos ● Não faça commit antes de ir pra casa
  • 22. Controle de versão != Sistema de backup ● Evite commitar binários
  • 23. Adote um workflow ● Evite problemas de comunicação ● Utilize o mesmo workflow com o time
  • 24. Gitlab + Documentação ● Gitlab consegue comparar texto puro ● Arquivos binários não são suportados ● Exemplo ○ gitlab.com/uilianries/documentation
  • 25. Onde posso aprender git na prática? ● https://learngitbranching.js.org/ ● https://try.github.io
  • 26. Onde posso obter uma cola? ● git-tower.com/blog/git-cheat-sheet
  • 27. Conclusão ● Commit mudanças relacionadas ● Commit com frequência ● Utilize branches ● Teste antes de commitar ● Escreva mensagem de valor ● Não faça meio-commit ● SCM não é backup ● Siga um workflow
  • 28. Referências ● git-scm.com/book/en/v2/ ● git-tower.com/ ● nvie.com/posts/a-successful-git-branching-model/ ● guides.github.com/introduction/flow/ ● docs.gitlab.com/ce/workflow/gitlab_flow