DEV Community

Cover image for Hacks e boas práticas de git
Amanda Rover
Amanda Rover

Posted on

Hacks e boas práticas de git

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"

Alt Text

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).

Output do comando git add -p:
Output do comando 'git add -p'

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:
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:
Alt Text

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:
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:
Alt Text

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:
Alt Text

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)

Collapse
 
rdmeneze profile image
Rafael Dias

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ô!