ProduzindoBranches
Produção de Branches
Este documento tem como objetivo esclarecer algumas dúvidas sobre a produção de branches em um ambiente de desenvolvimento, é desejável que você possua algum conhecimento razoável de sistemas de versionamento de código. Algumas regras aqui aplicadas favorecem o uso de branches para criação de novas features dos projetos do grupo.
|
Nomeando Branches |
Existe uma convenção adotada pelos desenvolvedores para a nomeação de branches. Essas nomeações baseiam-se nas atividades que serão executadas no novo branch que será criado. Exemplo:
Um desenvolvedor pegou a tarefa de criar uma lista cinética, mudando o comportamento da lista atual da aplicação que era totalmente estática. Um possível nome para o novo branch seria kinetic-list.
Em um repositório local desenvolvedores costumam criar um branch chamado production o qual serve apenas para testes e modificações que não podem ser realizadas no branch principal, que chamamos de master.
Nos projetos do grupo essa nomeação poderá ser dada de acordo com a criatividade do desenvolvedor, tirando qualquer diretriz de nomeação de branches.
|
Criando Feature Branches |
Um feature branch é um branch produzido para armazenar features propostas para o projeto atual, são produções de novos conceitos do projeto. Um feature branch pode ser criado para o desenvolvimento de uma task da lista de tarefas, também chamada de TODO list do projeto. Features branches são short-lived, mas é possível que a relevância de um feature branch possa torná-lo um base branch, se assim o grupo de desenvolvimento desejar.
Um feature branch é criado a partir de um branch que chamamos de base branch, base branch é um branch totalmente estável e confiável diferentemente de um feature branch, o qual é criado para fins experimentais.
Se você se encontra em seu branch master ou em qualquer outro branch e deseja criar um feature branch a partir do branch atual, digite no terminal:
$ git branch <feature-branch>
Depois de criado faça a troca do branch. Digite no terminal:
$ git checkout <feature-branch>
Você pode criar um novo branch e ainda fazer a troca em apenas um comando, digitando no terminal:
$ git checkout -b <feature-branch>
|
NOTA: Lembre-se de que todos os comandos citados acima são executados no diretório onde se encontra o repositório local do projeto. |
Base branches possuem algumas características, como:
- São estáveis
- São long-lived
Em um ambiente de produção todo desenvolvedor possui no mínimo um base branch e um feature branch. Neste caso o feature branch é um branch de produção intensivo, o qual foi chamado aqui de production, onde são executados todos os testes antes do merge final com o branch master.
master
production
O branch production é criado localmente e se houver necessidade e relevância pode ser exportado para o repositório remoto. É encorajado a criação de feature branches simplesmente para não comprometer o base branch no caso o branch master. Alterações que foram feitas em seu feature branch podem ser incorporadas ao seu base branch, depois de validadas é claro!
|
Exportando Branches |
Após a criação de features branches no repositório local as vezes é necessário que tais branches sejam exportados para o repositório remoto. Aqui no grupo usamos a estrutura de hospedagem do Gitorious como repositório remoto. Cada desenvolvedor pode possuir um clone do projeto e trabalhar neste clone. Features relevantes são adicionadas na árvore principal por meio dos commiters.
Você pode visualizar os branches da sua sua árvore, digitando no terminal:
$ git branch -a --color
Você pode exportar ao repositório remoto o feature branch desejado, digitando:
$ git push <remote-repo> <feature-branch>
|
Manutenção de Branches |
Atualizações são feitas apenas no(s) seu(s) base branch(es). Evite atualizar seu feature branch a partir de branches experimentais ou branches de outros projetos, é aceitável apenas se você deicidiu tornar isto parte do seu desenvolvimento.
Todo feature branch necessita de uma revisão para que suas alterações sejam validadas, a não ser que tal feature branch seja particular à você. Após a criação de um feature branch e finalizada a tarefa é necessário que você faça um Request Review para que um outro desenvolvedor do grupo faça uma análise de suas alterações e possa validar suas alterações na árvore principal do projeto em que você participa.
Esteja sempre atento aos reviewers do seu feature branch, eles são responsáveis pela validação do seu código. Discuta tudo o que for necessário com eles antes do commit final.
|
Concluindo Features Branches |
Após a conclusão de sua feature e validação das alterações pelo(s) reviewer(s) escolha onde mergear de volta, suas opções incluem:
Seu base branch (é o target mais apropriado a isso)
Um base branch de um outro projeto
Um outro feature branch, mas cuidado! Talvez você precise realizar uma operação de rebase
Depois de validada as alterações e realizado o merge é necessário que você destrua seu feature branch para não poluir seu repositório.
Primeiramente é necessário destruir seu feature branch localmente, no terminal digite:
$ git branch -D <feature-branch>
Se você chegou a exportar o seu feature branch para o repositório remoto, é necessário removê-lo de lá também. Digite no terminal:
$ git push <remote-repo> :<feature-branch>
Referências
UbuntuAM/Git/ProduzindoBranches (last edited 2011-09-19 23:23:30 by localhost)