:::: MENU ::::

Fazendo commits da maneira certa

Partindo do ponto que eu não tenho a mínima ideia de qual tipo de controle de versão você usa ou pretende usar, imaginamos que ele tenha commits, então o que vou falar aqui e de como seus commits devem ser feitos para ter um sentido real na vida e no universo.

Cada commit deve pertencer a uma mudança lógica, por exemplo: um bug, um método uma feature. Então não deixe para encher o balde de maçãs, bananas, morangos e mais outras frutas, por que depois na hora de tirar eles do balde vai ser um saco de você separar não é mesmo? então o mesmo serve para os commits.

Motivos que provam que eu estou certo.

1. Se um commit precisa ser revertido, como alguém vai conseguir reverter ele se ele implica em outras features ou correções?

2. Imagina se você esta contribuindo no projeto de alguém e esse alguém vai dar merge apenas da parte que ele acha que faz sentido? e ai como vai ser?

3. Imagine o momento que você vai precisar dar cherry pick para pegar somente alguns commits necessarios (essa também e uma das certezas da vida, você vai ser corno, vai empurrar um fusca e vai fazer cherry pick), vai ser realmente bem complicado de fazer não é?

Coisas bem erradas de se fazer

1. Commits com multipla responsabilidade, por exemplo “Fixed legs and arms and change in hands” .. What??? como eu vou conseguir reverter isso se precisar? quantas coisas vou ter q mudar?

Se o seu commit so tem uma responsabilidade, ele so vai responder sobre o que foi feito por exemplo  “Fixed email text field”.

2. Envie mensagens com sentido e que expliquem o que você fez no código, por exemplo “Commiting some things” what???? commitando o que? tu fez o que? por que?

Se a gente já esta trabalhando para deixar claro o que foi feito, a mensagem também tem que dizer isso então seja preciso e direto, por exemplo “Added email validation”

Ta, beleza mas então eu só disse o que não fazer, e como podemos fazer pra fazermos isso da maneira certa?

Fácil digo eu.

Não precisamos subir nossas mudanças toda hora para o servidor, dando push para o remoto por exemplo, o bom é em nosso local a cada mudança que fizermos em coisas distintas irmos la e darmos um commit destas mudanças. Assim vamos acumular elas e criar ancoras para cada mudança, e la pelo final do dia ou não sei a frequência que você costuma enviar as coisas para o remoto, você pode mandar todos estes commits para la, certinhos e também separados por cada uma das coisas feitas.

Espero que ajude vocês em suas vidas.

Fonte: http://elnur.pro/make-atomic-commits/