Hacks e boas práticas de git
Tags: git, github, gitcommands, bestpractices
Published: 2021-01-18 18:50:53

---
title: Hacks e boas práticas de git
published: true
description: 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.

tags: git, github, gitcommands, bestpractices
cover_image: https://cdn-images-1.medium.com/max/800/1*bTHdkCCx7wI1Cbu8t5JHkw.png
---

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](https://dev-to-uploads.s3.amazonaws.com/i/uea84jn0pgy6jhn7csai.png)

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'](https://dev-to-uploads.s3.amazonaws.com/i/9yw56zlfqq71ps0930ju.png)

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'](https://dev-to-uploads.s3.amazonaws.com/i/rxca627l2uvmtgybihdy.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/qfnhpuhwi5snebd2gjcx.png)

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'](https://dev-to-uploads.s3.amazonaws.com/i/8wkrqcnz1sjvff5im9iv.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/mfr5bdj88nfxma2tb6za.png)

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](https://dev-to-uploads.s3.amazonaws.com/i/m5cg3d9rsc5f3370s4zf.png)

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?