Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Let the development Flow [pt_BR]

Let the development Flow [pt_BR]

Entendendo como o Git pode ser utilizado para aumentar a produtividade do seu time

Miere Liniel Teixeira

September 01, 2014
Tweet

More Decks by Miere Liniel Teixeira

Other Decks in Programming

Transcript

  1. Let the development flow Entendendo como o Git pode ser

    utilizado para aumentar a produtividade do seu time
  2. Falar de processo de expedição usando Git como Source Control

    Tool e como automatizar algumas rotinas deste processo. objetivo da apresentação
  3. … agora: por que usar o Git... ...quando já temos

    um modelo estável e testado aqui na empresa?
  4. Descentralizado Não memoriza “renames” Capaz de manipular qualquer coisa “commitada”

    Merges simples Volte ao passado Guiado por “branches” Staging Patching Blaming Integridade do Histórico
  5. Deve ser possível expedir o software com tudo que foi

    feito até o momento... … sem trazer consigo as features não finalizadas e bugs parcialmente corrigidos.
  6. # Criando a branch da feature $ git checkout -b

    feature-1 develop Switched to a new branch "feature-1" # Depois de seus commits na branch da feature $ git checkout develop Switched to branch 'develop' $ git merge --no-ff feature-1 Updating ea1b82a..05e9557 (Summary of changes) # Remover a branch desnecessária $ git branch -d feature-1 Deleted branch feature-1 (was 05e9557). # Atualiza o repositório $ git push origin develop
  7. $ git checkout -b release-1.2 develop Switched to a new

    branch "release-1.2" # Mudar a versão dos artefatos $ git commit -a -m "Bumped version number to 1.2" [release-1.2 74d9424] Bumped version number to 1.2 1 files changed, 1 insertions(+), 1 deletions(-) # Aplicar em master $ git checkout master Switched to branch 'master' $ git merge --no-ff release-1.2 Merge made by recursive. (Summary of changes) $ git tag -a 1.2 $ git checkout develop Switched to branch 'develop' $ git merge --no-ff release-1.2 Merge made by recursive. # Deletar a branch desnecessária $ git branch -d release-1.2
  8. # Criamos a branch de hotfix $ git checkout -b

    hotfix-1.2.1 master # Alteramos as versões dos artefatos $ git commit -a -m "Bumped version number to 1.2.1" # Aplicamos algumas correções $ git commit -m "Fixed severe production problem" # Aplicamos as correções em master $ git checkout master $ git merge --no-ff hotfix-1.2.1 # Criamos uma tag com a release da correção $ git tag -a 1.2.1 # Atualizamos develop com a correção atual $ git checkout develop $ git merge --no-ff hotfix-1.2.1 # Removemos a branch desnecessária $ git branch -d hotfix-1.2.1
  9. $ git flow init No branches exist yet. Base branches

    must be created now. Branch name for production releases: [master] Branch name for "next release" development: [develop] How to name your supporting branch prefixes? Feature branches? [feature/] Release branches? [release/] Hotfix branches? [hotfix/] Support branches? [support/] Version tag prefix? []
  10. # Criar a feature de login do sistema $ git

    flow feature start login # Altere os códigos necessários e commit $ git commit -m “Finalizada feature de login do sistema” # Finalize a release $ git flow feature finish login # Criar a feature de integração do login com o Google $ git flow feature start google-login # Altere os códigos necessários e commit $ git commit -m “Login integrado ao Google” # Finalize a release $ git flow feature finish google-login
  11. # Inicie a sua release $ git flow release start

    v0.1.0 # Publique a release para o servidor $ git flow release publish v0.1.0 # Aplique as correções necessárias # Caso encontre algo de errado durante o QA da release # Finalize a sua release $ git flow release finish v0.1.0 # Envie as suas tags de release para o servidor $ git push --tags
  12. # Inicie um hotfix $ git flow hotfix start v0.1.1

    # Aplique as correções necessárias # Finalize a sua release $ git flow hotfix finish v0.1.1 # Envie as suas tags de release para o servidor $ git push --tags