Não se comprometa com seus compromissos

Eu tropecei por http://paul.stadig.name/2010/12/thou-shalt-not-lie-git-rebase-ammend.html algumas vezes agora. Então pensei em dizer por que rebase e mentir são bons.

Todo mundo mente, não importa o quê.


Comprometer-se com frequência é uma coisa boa. Isso ajuda a mantê-lo organizado sobre o que você já fez. Tendo que se comprometer com o commit, você hesitaria em se comprometer (até que tudo funcione 100%).

O que significaria que você acabaria não tendo um commit em seu branch, mas centenas de alterações de arquivo que você não consegue descobrir por que exatamente mudou algo para acabar git add .e git commit -m "changes"que não ajuda o fluxo de trabalho ou descobrir porque algo foi alterado (por exemplo, um bug foi introduzido).


Digamos que você trabalhou em um branch por um dia e fez 20 commits. No entanto, você percebe que esse recurso vai demorar muito mais e 10 deles podem ser reutilizados por outros desenvolvedores (se você colocá-los no master o mais rápido possível). Você poderia facilmente rebase, reordenar os commits e criar um branch no 10º commit ( git branch feature-x <sha>).

Agora o que você tem é um galho de outro galho.

git checkout feature-x git push origin feature-x e abra uma revisão de código.

Se o rebase não fosse possível, você acabaria com os desenvolvedores fazendo o MESMO trabalho; ou ainda pior … você criando um novo branch e refazendo metade do trabalho manualmente.


Além disso … se você se compromete com frequência, então você descobre que não precisa de algumas mudanças que você fez anteriormente. Cada uma das mudanças estaria em seu próprio commit, então você poderia facilmente usar o rebase e remover esses commits.

Alternativamente (não reescrever o histórico) você faria, o que adiciona um commit adicional ao histórico SEM RAZÃO. Só para guardar a “história”.git revert <sha>

Manter a história é bom … muito disso é ruim.


Alguns argumentam que manter a história (não importa o que aconteça) é bom. Minha pergunta seria: você se compromete cada vez que digita um personagem? e então o backspace? não…


Não se comprometa com seus compromissos

a menos que estejam no mestre ou sejam compartilhados 🙂