Existem dois tipos de fluxos principais de trabalho: features e hotfixes.
Trata-se de novas funcionalidades, melhorias e bugs de baixa prioridade.
Além da master, existem duas branches principais de trabalho no SALIC:
---- develop ------
/
master o-----------------------
\
---- hmg -----
Cada desenvolvedor criará uma branch a partir da develop
.
$ git checkout develop
$ git checkout -b feature/nome-da-funcionalidade
master o-------------------------------
\
o--- develop ----------------------
\
o--- feature/nome-da-funcionalidade --
$ git commit -m '[FIX]: modulo: funcionalidade x #numero_da_issue'
$ git commit -m '[UPDATE]: modulo: funcionalidade y #numero_da_issue'
$ git push origin feature/nome-da-funcionalidade
Para visualizar uma lista completa do padrão de versionamento de código clique aqui.
master o-----------------------------------------
\
o---------------- develop ----------
\
o---o----o----- feature/nome-da-funcionalidade ---
$ git checkout feature/nome-da-funcionalidade
$ git fetch
$ git merge develop
$ git push origin feature/nome-da-funcionalidade
master o----------------------------------------------
\
o-----o----o----o--- develop ------------
\ \
o---o----o------o--- feature/nome-da-funcionalidade ---
A branch develop
é bloqueada para envio de commits e merges automáticos.
No github:
Para fazer o merge da sua branch você deverá criar um pull request
no github.
Após criar o pull request
, solicite a um colega que revise e aprove o seu código.
Importante: o merge para develop só pode acontecer se o seu trabalho já tiver sido homologado pelo cliente(próximo passo).
master o-----------------------------------------------------------
\
o-----------------------o ----------- develop --------------
\ /
o---o----o------o---o --- feature/nome-da-funcionalidade ---
- Após o merge para a branch
develop
delete sua branch no github. - Para remover sua branch do conteúdo local execute o comando
git branch -D feature/minha-feature
Para o cliente testar e homologar o seu trabalho, você deve fazer o merge da sua branch para a branch hmg
.
Atualmente utilizamos a biblioteca node chamada Husky para versionar nossos hooks do git e adicionar tratativas para versionamento de código. Recomendamos que na raiz do projeto você execute o comando npm install
pelo ao menos uma vez, para que sejam instaladas todas as dependência necessárias.
$ git checkout hmg
$ git fetch
$ git merge feature/nome-da-funcionalidade
$ git push origin hmg
master o-----------------------------------------------------------
\
o-----------------------o ----------- hmg-------------
\ /
o---o----o------o---o --- feature/nome-da-funcionalidade ---
Após o push
, se você executou npm install
, um hook atualizará automaticamente o ambiente de homologação utilizando o jenkins.
Solicite ao cliente para validar o trabalho desenvolvido. Após a validação você deverá fazer um pull request
da sua branch para a branch develop
(passo 4 do item Develop).
OBS: NUNCA FAÇA UM PULL REQUEST DA BRANCH HMG PARA QUALQUER OUTRA BRANCH.
Hotfix é uma alteração emergencial, que deve ser aplicada imediatamente em produção. Envolve poucos commits e dificilmente dura mais que um dia.
Para criar um hotfix, siga os passos abaixo:
$ git checkout master
$ git checkout -b hotfix/nome-da-correcao
$ # Adicione os arquivos alterados
$ git add pasta1/pasta2/arquivo2.php
$ # Faça o commit de suas alterações suas correções
$ git push hotfix/nome-da-correcao
No github:
- crie dois pull requests da branch hotfix/nome-da-correcao para a branch master e para a branch develop no github.
- solicite a um colega que revise e aprove seu código.
Dessa maneira conseguimos garantir que a branch develop estará sempre mais atualizada.
Para publicar para a master siga o roteiro para publicação de release