Pontos de salvaguarda git não compilados locais

Depois de várias vezes desejar salvar algum trabalho de codificação que ainda não compilará, mas sendo um bom garoto e desejando seguir a regra de nunca enviar o trabalho não compilado para um repositório git (ou qualquer controle de origem compartilhado, por falar nisso), finalmente me ocorreu: USE git PARA RAMOS LOCAIS E NÃO EMPURRE-OS ATÉ QUE SE COMPILEM. Duh.

Agora posso salvar instantâneos do meu código sempre que precisar, mesmo que eles ainda não tenham compilado. Mas quando tudo está bom e funcionando bem, e é hora de empurrar, seria desagradável empurrar os commits incrementais não compilados para o final remoto, mesmo se o resultado geral do branch que está sendo empurrado sair bem. Então, eu encontrei algumas dicas úteis sobre stackoverflow que mostram como comprimir vários commits em um único commit, usando o rebase interativo do git. Ver abaixo:

http://stackoverflow.com/a/5668050/1286986

O link para o documento na resposta acima é um contexto útil, com mais detalhes:

http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages

Depois, há outra resposta útil sobre como lidar com o caso em que você realmente enviou os commits que deveriam ter sido eliminados para um repositório remoto. A resposta curta é: NÃO, se houver alguma possibilidade de outra pessoa já ter retirado esses commits. Mas se não for tarde demais:

http://stackoverflow.com/questions/5667884/how-to-squash-commits-in-git-after-they-have-been-pushed