Você pode usar um pre-commit
hook para "avisar" um usuário que ele está cometendo com os detalhes errados, mas não há garantia que ele será executado - os ganchos não são ativados por padrão em novos clones (para que as pessoas tenham que configurá-los) e você pode passar --no-verify
para git commit
para impedir que o pre-commit
hook seja executado. É uma boa ideia fornecer, e recomendar, para que as pessoas sejam alertadas, o mais cedo possível, de que o commit é ruim, mas não pode ser usado para impor um requisito.
Para impedir que os usuários "publiquem" suas alterações inválidas, você precisa usar um update
hook no repositório central ("integration") que verifica todos os novos commits sendo enviados e rejeita todo o push se algum dos commits falhar na validação. Você também desejará fornecer documentação (possivelmente na própria mensagem de rejeição de envio) sobre como usar git filter-branch
para corrigir os commits inválidos.