Assim como várias áreas na programação, precisamos sempre manter as boas práticas de desenvolvimento. Eu trouxe um compilado de boas práticas de git e um hack que aprendi ao longo dos anos que trabalho como desenvolvedora.
Commit message
A mensagem de commit é a coisa mais importante no versionamento do git.
O commit tem que descrever o que o código faz pois ele salva momentos, ou seja, o histórico do código. É possível acessar uma versão de código específico e fazer uma nova alteração, por isso o commit é geralmente escrito começando com um verbo no presente do indicativo, indicando que aquilo acontece naquele commit.
Exemplo:
"Arruma o problema de duplicidade"
"Refatora o método x"
Tente sempre ser direto/a e sucinto/a quando for fazer seu commit.
As mensagens devem ser claras para poder identificar rapidamente o que é feito naquele commit. Esse também é um dos motivos pelo qual devemos commitar poucas alterações do código de cada vez.
Adding changes
Um dos primeiros comandos que se aprende com o git é o git add .
. Eu achava que minha vida estava completa com esse comando, porém depois que conheci o git add -p
meus commits mudaram (pra melhor).
Esse comando permite que você adicione pequenas partes da implementação do código e também mostra um preview do que será adicionado (pra quem não usa VSCode, ou ferramentas que é possível ver o diff, é uma vantagem importante).
Quando usamos esse comando, abre um input pedindo o que deve ser feito com esse hunk. Acionando o comando ?
, ele mostra todas as opções possíveis e a descrição do comando.
Descrição dos subcomandos do git add -p
:
Uma possibilidade que o add -p
tem, é separar o hunk em pedaços. Por exemplo no código acima, podemos separar usando o comando s
, assim será possível adicionar apenas um método index commit.
Output mostrado quando usado o comando s
:
Sempre recomendo usar esse comando. Ele também é bom pra quando você flui muito no desenvolvimento e esquece de commitar alguns momentos de código. Eu percebo que poucas pessoas conhecem esse comando e acho ele um dos mais importantes.
Commitei mas esqueci de uma parte, e agora? --amend!
Agora imagine você commitando uma mudança, porém, mais pra frente, percebe que está faltando uma parte importante do código, e sem ele, o código não funciona. Um dos objetivos de manter o versionamento de código é ter a segurança de que cada versão do seu código esteja funcionando corretamente. Por isso é importante commitar versões do código que são funcionais. Então seria interessante adicionar essa alteração no commit anterior para passar a ser um commit de uma versão funcional do código.
Então, você não precisa fazer um commit com o nome "Arruma o método index parte 2" ou até deletar o commit anterior pra unificar as alterações em um novo commit.
Existe uma forma fácil de unificar as alterções usando o comando --amend
.
Então você já commitou uma parte do código mas ainda não deu push. Para adicionar a parte que falta no mesmo commit, basta adicionar as alterações (git add .
) e depois usar o comando git commit --amend
.
Adicionei a alteração que faltava e vou acionar o comando git commit --amend
:
Ele vai abrir uma tela de texto no terminal, e lá é possível alterar a mensagem do commit anterior. Nesse caso, queremos só adicionar essas mudanças novas e manter a mensagem, então basta apenas sair e salvar dessa tela usando o ctrl+r (equivale ao comando Exit).
Tela de texto no terminal que aparece quando acionamos o comando git commit - amend
:
Assim, podemos ver que a alteração adicionada faz parte do commit anterior pois existe apenas um commit com a mesma mensagem.
output do comando git log
mostra apenas um commit com as alterações:
Porém, não é recomendado usar esse hack caso o commit anterior já tenha sido feito o push, pois será criado dois commits com o mesmo nome.
Esse foi um pequeno compilado de hacks e boas práticas de git que aprendi ao longo dos anos. xD
E vocês? Qual é o comando ou as boas práticas que vocês não vivem mais sem? Qual é o hack que vocês acham super importante ter no dia-a-dia de desenvolvimento?
Top comments (1)
atualmente eu estou usando bastante o git reset para arrumar os meus commits. Geralmente, durante do desenvolvimento você acaba colocando um monte de commits com mensagens sem nenhum sentido e, antes de fazer o commit final, eu acabo fazendo um git reset --mixed para resetar somente o index e aí faço um único commit com uma mensagem bunita dimais, sô!