git add -p
Eu não sei vocês, mas geralmente eu trabalho em várias alterações dentro de um arquivo que não estão ligadas entre si, e na hora de enviar para o commit eu tenho que selecionar o que quero para não bagunçar meu código.
Assim eu acabei me adaptando ao parâmetro -p do git add, que me ajuda a fazer exatamente isso, selecionar o que quero enviar daquele arquivo.
Vamos ao exemplo jovem! Eu tenho o seguinte arquivo já em meu repositório:
O exemplo.teste é um arquivo com algumas linhas que eu irei alterar consideravelmente, como mostra o diff abaixo:
Bacana né? Agora eu quero adicionar apenas a quarta linha editada (Vou so...), e é aí que entra o git add -p! Ao executar o comando, o git me mostra as alterações e logo embaixo me dá umas opções, observem:
Temos então as seguintes e mais interessantes opções:
- y (aceito, manda pra conta do papa)
- n (não aceito)
- s (split, esse código está muito grande, quebre em porções menores)
Acontece que como as alterações estão próximas uma das outras, o git entende isso como um belo e único código, só que não senhor git, eu quero apenas a quarta linha alterada!
Então tudo que devo fazer é apertar a letra s:
Em seguida ele continua com as opções básica de aceitar (Y) ou negar (N), e é tudo que basta eu fazer agora, negar até chegar a linha que eu quero, aceitar ela, negar o restante, pronto!
E é isso jovem, simples assim! O git add -p te dá mais opções caso você ainda precise enviar algo menor que uma linha.
Ta Sr. Kayo, porque você não usa branchs?
Jovem realmente, usar um branch é uma boa prática e evita isso, mas como não temos o controle de tudo e não podemos prever tudo, e como eu trabalho em projetos que não tem uma necessidade louca de dar branch em tudo, mesmo sendo uma boa prática, podemos necessitar do -p.
Até mesmo dentro de um branch você pode acabar trabalhando duas correções em um mesmo arquivo, e aí jovem é melhor você usar o -p do que criar outro branch dentro de seu branch, né?
Valeu?
Valeu.