Se você precisar usar aspas duplas e esse !for o último caractere da mensagem, mantenha o !lado de fora das aspas , pois estamos usando apenas aspas para que os espaços sejam incluídos na mensagem.
git commit -m "Reverting last commit because I don't like it"!
Se você precisar incluir uma !sequência intermediária, poderá usar aspas simples, mas se precisar usar uma aspas simples literal, será necessário fechar sua cotação e colocar a parte 'externa da sequência, escapando-a. Então, digamos que sua mensagem seja I don't like it! Reverting again!, ela pode ser composta com 'I don'+ \'+'t like it! Reverting again!'
git commit -m 'I don'\''t like it! Reverting again!'
Qualquer coisa mais complicada do que isso, provavelmente você está melhor git commite permite que o git invoque seu editor de texto padrão :)