DEV Community

Guilherme Silva
Guilherme Silva

Posted on

Fui commitar e deu branco. E agora?

Esses dias, navegando no X, me deparei com a seguinte imagem
Pensando em uma mensagem de commit

E achei engraçado, porque eu e você provavelmente já nos vimos nessa situação: adicionamos os arquivos e ficamos literalmente travados pensando o que colocar de mensagem no commit. Muitas vezes os arquivos são em pastas e contextos diferentes, o que dificulta ainda mais a pensar em uma mensagem condizente.

E é aí que mora o problema: Quando commitamos todos os arquivos com o famoso git add . fica muito difícil resumir em uma frase o que foi feito naquele commit.

E você no fundo sabe que uma hora ou outra vai voltar para aquele commit específico para ver o que foi mudado, como estava antes, alterar uma coisa ou outra e vai ficar perdido com a quantidade de arquivos e a procura vai ser árdua(por isso é importante ter commits frequentes).

O que é git add -p?

Eu uso um comando de git muito bom para quando mexo em vários arquivos ao mesmo tempo e que possuem contextos diferentes, como por exemplo testes X e configuração de um banco de dados Y.

  • git add -p

É uma forma encurtada do comando git add --patch. O que ele faz é pegar o diff dos arquivos modificados e deletados, com isso você consegue verificar o que mudou, onde e como. Como diz na doc do git "Ele te dá a oportunidade de revisar o conteúdo modificado antes de adicioná-lo"

Uso do git add patch

E assim, logo após mostrar o diff ele apresenta as opções que aí você seleciona de acordo com o que pretende fazer :)

y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
p - print the current hunk
? - print help
Enter fullscreen mode Exit fullscreen mode

Depois de escolher os arquivos de um mesmo contexto(sabendo o que foi modificado em cada um) fica muito mais fácil executar o git commit -m "" com uma mensagem legal, legível e curta que vai ajudar todo mundo a entender o que foi modificado ali no futuro para inclusive resolver futuros bugs.

Por fim...

Espero que isto te ajude igual tem me ajudado diariamente a ser mais claro e preciso nos meus commits, e, claro, diminuir o tempo encarando o monitor pensando em uma boa mensagem que talvez nunca venha.

Referências

Git doc - Git add Options

Top comments (2)

Collapse
 
lucas_aguilar_e893f7b0a2b profile image
Lucas Aguilar

Muito bom, super util e aparentemente simples 👍

Collapse
 
guim profile image
Guilherme Silva

Bem simples e eficaz, gosto muito de usar