Relacionado: Todo commit do git deve deixar o projeto em um estado de trabalho?
Suponha que eu faça os seguintes commit localmente:
Modifique o esquema do banco de dados, interrompendo o aplicativo.
Atualize o aplicativo para que seja compatível com o esquema do banco de dados novamente.
Enquanto eu pressionar os dois commits, master
permanecerá em um estado de trabalho. No entanto, uma versão histórica está quebrada.
Estou ciente de que posso usar git rebase -i
para esmagar os commits juntos. No entanto, o commit resultante será grande e menos descritivo. Se eu precisar pesquisar no histórico de consolidação para descobrir por que mudei algo, prefiro encontrar a consolidação original mostrando o que fiz e por que.
Minhas perguntas são:
Alguém encontrou dificuldades devido a comprometimentos históricos comprometidos no mestre?
Em caso afirmativo, existe uma maneira simples de evitar essas dificuldades, sem descartar mensagens e alterações individuais de confirmação?