Seu problema principal é chamar git commit -m com aspas duplas literais como parte da mensagem.
A linha de comando dada a git será, se $message for a string some message here ,
git commit -m '"some' 'message' 'here"'
Isso se deve à citação das aspas duplas.
Em vez disso, isso funcionaria:
git commit -m "$message"
Use um modelo de mensagem de confirmação.
Supondo que o modelo esteja no arquivo template.txt da seguinte forma:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Pushing To all branches
# What is your Commit Message?
... então isso seria inserido no topo da mensagem de commit em um editor quando você faz
git commit -t template.txt
Fornecer um editor para editar a mensagem de confirmação tornaria muito mais fácil para o usuário formatar corretamente uma mensagem de confirmação correta.
Você também pode definir o commit.template no arquivo .git/config do repositório para o nome do caminho de um arquivo de modelo a ser usado ( -t não é necessário).
Qualquer linha que comece com # no modelo não será confirmada.
Veja também: