Se você estiver usando um DVCS, deverá estar comprometendo com muita frequência. Eu confirmo toda vez que meu código está em um estado estável, que não está relacionado a linhas de código. Você deseja uma árvore com muitos pequenos commits atômicos que facilitam a visualização do que você fez em cada um. Se você está tentando rastrear uma regressão encontrada ao testar, isso facilita muito a pesquisa binária e a confirmação exata, porque você terá menos alterações por confirmação. Eu só confirmo quando meu código é compilado - minha idéia de "atômico" é que ele compila, passa nos testes de unidade de regressão e passa em um teste de integração rápida. Às vezes, um teste de unidade é incluído, e às vezes não.
Quando você pressiona, deve pressionar todos os recursos. O resto do mundo não deseja que seus "erros de verificação neste arquivo" sejam confirmados todos os dias. O Git fornece rebase
, o que permite que você limpe sua árvore de consolidação pressionando vários commit juntos. A comunidade parece estar incerta sobre quanta história você deve comprometer. Eu diria que você deve juntar os commits que não mostram nada da história, como "arquivo perdido" ou "regressão burra". Você deseja apresentar uma história o mais limpa possível, para que todos possam ver facilmente o que você fez.
Em um sistema de controle de versão centralizado, você precisa comprometer muito mais se quiser manter um bom histórico. Minha recomendação é que você trabalhe em recursos menores e conclua-os o máximo que puder antes de confirmar. Seu conceito de "atômico" aqui deve ser um recurso que funcione e seja testado. Você não deseja comprometer nada que interrompa os espaços de trabalho de outros desenvolvedores, porque eles serão atualizados com frequência e é muito mais difícil trabalhar em recursos independentes que se sobrepõem. Você comprometerá menos, mas esses comprometimentos geralmente serão mais difíceis do que o seu DVCS médio.
Você pode ver que a proporção de linhas de código e número de confirmações depende do tamanho dos seus recursos e do fluxo de trabalho que você usa. Seu fluxo de trabalho será diferente, dependendo do sistema de controle de versão que você usa, portanto, geralmente não é possível prever como serão as suas confirmações. Cada instituição possui seu próprio padrão e deve determinar por si mesma qual deve ser o fluxo de trabalho ideal.