SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
SAMBA
                   TECH



Processo de desenvolvimento
Processo de Desenvolvimento
na samba usando Git, GitHub,
   Jenkins e BluePill como
    ferramentas de apoio.
Processo de desenvolvimento
          no Sprint
Como era (é)?
A nova proposta...




Desenvolvimento usando
    feature branches
Por quê usar feature branches?




- Branches são “baratos”
- Separação do código das features
- Facilidade para QA garantir que a feature está funcionando
- Fácil gerenciamento da release
- ...
Como fica então?
E na prática, como funciona?
Como criar um branch?




•
    $ git checkout -b <feature-branch-name>
Como alternar entre branches?




$ git checkout <feature-branch-name>
•
Como fazer push das minhas modificações?




•
 $ git commit -a -m”minha nova feature”
•
 $ git push origin <feature-branch-name>
Merge ou Rebase?
•
    Depende...
O que o merge faz?


- Um novo commit é criado no HEAD do stack de
•


commits, marcando o momento em que duas cabeças
distintas foram transformadas em uma só.
Merge...




$ git pull origin master
$ git checkout <feature-branch-name>
$ git merge master
Vantagem do Merge




- Maior facilidade para entender quando uma cabeça foi
•


mesclada com outra.
O que o rebase faz?



•
  - Recorta o commit – o commit perde a referência do
parent.
•
  - Aplica todas as modificações com as quais você
está fazendo o rebase.
•
  - Cola suas modificações em cima desta nova base,
com novo SHA1 – ou seja, um novo commit.
O que o rebase faz?
Rebase...




•
  $ git checkout -b <feature-branch-name>
•
  ..hack.hack..
•
  $ git commit
•
  $ git rebase master
•
  $ git checkout master
•
  $ git merge <feature-branch-name>
Quando não usar o Rebase?

- Nunca, NUNCA use rebase em branches públicos.
Push




$ git push <feature-branch-name>
E como testar minha feature?




- Jenkins

- BluePill
Jenkins
BluePill
Release-Notes




•
 - Incremental durante o Sprint
•
 - Direto na interface do GitHub
Release-Notes




- Maiores informações na colméia:
•


http://colmeia.sambatech.com.br/display/comofas/Di
cas+Release-Notes
Como colocar meu código em produção?
•
    Pull-Request
Pull-Request – Revisão de Código
Pull-Request – Revisão de Código
Pull-Request – Revisão de Código




Observações:
- Commit no HEAD do branch em pull-request
faz o HEAD do pull-request andar também.
Quando testar?




Aberto para que a equipe escolha.

Mas dar preferência para integração
  na quarta-feira ou quinta-feira.
Processo de Hot Fix
Hot Fix

•
    Fork para a conta pessoal
Hot Fix




•
    Pull-Request para master de Desenvolvimento e
                 master de Produção.
Hot Fix
FAQ




•
    Qual a melhor forma de ir para uma revisão específica e
      depois retornar para a minha revisão (parece algo
           simples, mas já tive problema com isso)?
FAQ

    •
        Qual a melhor forma de ir para uma revisão específica e
          depois retornar para a minha revisão (parece algo
               simples, mas já tive problema com isso)?




•
 $ git branch branchname <sha1-of-commit>
•
 $ git branch branchname HEAD~3
FAQ

          O git é um sistema de versionamento distribuído.
                Qual a melhor forma de duas pessoas
                     trabalharem em uma feature
                  de forma independente da equipe?

O HG permite push e pull de um repositório que esteja
•


na máquina de um dos desenvolvedores por exemplo.
Mas acho que no GIT o mais indicado é criar um brach
 remoto neste caso (já li que existe um tipo específico
             de branch pra isso). Certo?
FAQ




•
    Como faço para ver o que foi mudado no meu branch
        remoto, sem atualizar meu branch atual?
FAQ

    •
        Como faço para ver o que foi mudado no meu branch
            remoto, sem atualizar meu branch atual?




•
    $ git fetch && git log ..origin/master --oneline
FAQ




Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas,
            voltar ao estado antes das modificações. Qual o comando?
FAQ

   Fiz pull, realizei um monte de modificações. Quero
simplesmente "desistir" delas, voltar ao estado antes das
              modificações. Qual o comando?

    Se estiver no working directory:
    $ git checkout -- <file>

    Se já tiver dado “add” (staging):
    $ git reset HEAD <file>

    Se já tiver commitado:
    $ git reflog
    $ git reset --hard HEAD@{1}
OBRIGADO!



João Maciel, DevOps - Samba Tech
  joao.maciel@sambatech.com.br

Contenu connexe

Tendances

APIs do Jeito Certo
APIs do Jeito CertoAPIs do Jeito Certo
APIs do Jeito CertoRavan Scafi
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesGraziella Bonizi
 
Automatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneAutomatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneakamud
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao FlywayJadson Santos
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018Graziella Bonizi
 
MINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAMINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAArmando Couto
 
Laravel 5
Laravel 5Laravel 5
Laravel 5DevMT
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemFernando Ike
 

Tendances (13)

APIs do Jeito Certo
APIs do Jeito CertoAPIs do Jeito Certo
APIs do Jeito Certo
 
Boas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no KubernetesBoas práticas na configuração de jobs no Kubernetes
Boas práticas na configuração de jobs no Kubernetes
 
Automatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneAutomatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlane
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao Flyway
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
MINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIAMINI CURSO DE GIT NA UECE – 3º DIA
MINI CURSO DE GIT NA UECE – 3º DIA
 
Cucumber
CucumberCucumber
Cucumber
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
Introducao git fisl
Introducao git fislIntroducao git fisl
Introducao git fisl
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvem
 

Similaire à Processo de desenvolvimento na samba

Similaire à Processo de desenvolvimento na samba (20)

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
 
GIT - Hands-On
GIT - Hands-On GIT - Hands-On
GIT - Hands-On
 
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)
 
Git básico
Git básicoGit básico
Git básico
 
Git para quem vem do SVN
Git para quem vem do SVNGit para quem vem do SVN
Git para quem vem do SVN
 
Oficina de Git EEDACT2015
Oficina de Git EEDACT2015Oficina de Git EEDACT2015
Oficina de Git EEDACT2015
 
Git
GitGit
Git
 
Sendo um GIT master
Sendo um GIT masterSendo um GIT master
Sendo um GIT master
 
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 101
Git 101Git 101
Git 101
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Git flow no projeto
Git flow no projetoGit flow no projeto
Git flow no projeto
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Git v2
Git v2Git v2
Git v2
 
Git
GitGit
Git
 
Git
GitGit
Git
 
Git
GitGit
Git
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Git - Visão Geral
Git - Visão GeralGit - Visão Geral
Git - Visão Geral
 

Processo de desenvolvimento na samba

  • 1. SAMBA TECH Processo de desenvolvimento
  • 2. Processo de Desenvolvimento na samba usando Git, GitHub, Jenkins e BluePill como ferramentas de apoio.
  • 5. A nova proposta... Desenvolvimento usando feature branches
  • 6. Por quê usar feature branches? - Branches são “baratos” - Separação do código das features - Facilidade para QA garantir que a feature está funcionando - Fácil gerenciamento da release - ...
  • 8. E na prática, como funciona?
  • 9. Como criar um branch? • $ git checkout -b <feature-branch-name>
  • 10. Como alternar entre branches? $ git checkout <feature-branch-name> •
  • 11. Como fazer push das minhas modificações? • $ git commit -a -m”minha nova feature” • $ git push origin <feature-branch-name>
  • 13. Depende...
  • 14. O que o merge faz? - Um novo commit é criado no HEAD do stack de • commits, marcando o momento em que duas cabeças distintas foram transformadas em uma só.
  • 15. Merge... $ git pull origin master $ git checkout <feature-branch-name> $ git merge master
  • 16. Vantagem do Merge - Maior facilidade para entender quando uma cabeça foi • mesclada com outra.
  • 17. O que o rebase faz? • - Recorta o commit – o commit perde a referência do parent. • - Aplica todas as modificações com as quais você está fazendo o rebase. • - Cola suas modificações em cima desta nova base, com novo SHA1 – ou seja, um novo commit.
  • 18. O que o rebase faz?
  • 19. Rebase... • $ git checkout -b <feature-branch-name> • ..hack.hack.. • $ git commit • $ git rebase master • $ git checkout master • $ git merge <feature-branch-name>
  • 20. Quando não usar o Rebase? - Nunca, NUNCA use rebase em branches públicos.
  • 21. Push $ git push <feature-branch-name>
  • 22. E como testar minha feature? - Jenkins - BluePill
  • 25. Release-Notes • - Incremental durante o Sprint • - Direto na interface do GitHub
  • 26. Release-Notes - Maiores informações na colméia: • http://colmeia.sambatech.com.br/display/comofas/Di cas+Release-Notes
  • 27. Como colocar meu código em produção?
  • 28. Pull-Request
  • 31. Pull-Request – Revisão de Código Observações: - Commit no HEAD do branch em pull-request faz o HEAD do pull-request andar também.
  • 32. Quando testar? Aberto para que a equipe escolha. Mas dar preferência para integração na quarta-feira ou quinta-feira.
  • 33.
  • 35. Hot Fix • Fork para a conta pessoal
  • 36. Hot Fix • Pull-Request para master de Desenvolvimento e master de Produção.
  • 38. FAQ • Qual a melhor forma de ir para uma revisão específica e depois retornar para a minha revisão (parece algo simples, mas já tive problema com isso)?
  • 39. FAQ • Qual a melhor forma de ir para uma revisão específica e depois retornar para a minha revisão (parece algo simples, mas já tive problema com isso)? • $ git branch branchname <sha1-of-commit> • $ git branch branchname HEAD~3
  • 40. FAQ O git é um sistema de versionamento distribuído. Qual a melhor forma de duas pessoas trabalharem em uma feature de forma independente da equipe? O HG permite push e pull de um repositório que esteja • na máquina de um dos desenvolvedores por exemplo. Mas acho que no GIT o mais indicado é criar um brach remoto neste caso (já li que existe um tipo específico de branch pra isso). Certo?
  • 41. FAQ • Como faço para ver o que foi mudado no meu branch remoto, sem atualizar meu branch atual?
  • 42. FAQ • Como faço para ver o que foi mudado no meu branch remoto, sem atualizar meu branch atual? • $ git fetch && git log ..origin/master --oneline
  • 43. FAQ Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas, voltar ao estado antes das modificações. Qual o comando?
  • 44. FAQ Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas, voltar ao estado antes das modificações. Qual o comando? Se estiver no working directory: $ git checkout -- <file> Se já tiver dado “add” (staging): $ git reset HEAD <file> Se já tiver commitado: $ git reflog $ git reset --hard HEAD@{1}
  • 45. OBRIGADO! João Maciel, DevOps - Samba Tech joao.maciel@sambatech.com.br