Quando se está trabalhando em uma branch e outro membro do time faz um git push, você terá que fazer um git pull antes de enviar seus commits para o repositório bare. Quando isso acontece, o git gera um commit de merge. Muitos commits de merge não são informações úteis para outros desenvolvedores e podem complicar a leitura do histórico de commits.
É uma boa prática usar pull com rebase usando o comando:
git pull --rebase
Desta forma o histórico fica mais legível.
Para deixar esse processo automatizado, podemos usar a seguinte configuração:
git config --global --bool pull.rebase true
Quando estiver trabalhando em um feature branch e precisar fazer um merge para o trunk, que geralmente é o branch master, é uma boa prática usar o parâmetro –no-ff.
git merge --no-ff my-feature
Isso faz com que o git gere um commit de merge mesmo quando faz fast-forward, criando rastreabilidade, facilitando saber de onde vieram as alterações e quando o merge foi feito. Também facilita reverter funcionalidades adicionadas ao master.
A configuração abaixo deixa esse processo automatizado. Com ela, todas as vezes que você fizer merge, o git irá criar um commit de merge automaticamente.
git config --global merge.ff false
Ainda falando de features branches, quando se está trabalhando em um feature branch e precisa-se levar commits do master para ele, muitos devs usam rebase. No entanto o rebase reescreve o histórico e complica o fluxo além de ser muito mais custoso resolver conflitos quando se usa rebase. Então é melhor usar merge nesses casos.
Até a próxima minha gente.
Deixe um comentário