DEV Community

loading...
Cover image for Hacks e boas práticas de git

Hacks e boas práticas de git

amandarover profile image Amanda Rover ・4 min read

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?

Discussion (1)

pic
Editor guide
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ô!