Eu descobri, parece algo com o analisador .gitconfig e para resolvê-lo, precisamos apenas envolver o comando inteiro com aspas duplas como segue
"!sh -c 'git remote add $0 $1; git fetch $0 && git checkout -b $2 $0/$2'"
Eu quero ter um alias que execute um comando e, em seguida, se ele falhar ou não, execute outros comandos que dependam do sucesso do outro.
Então eu tenho algo assim em .gitconfig
getpull = !sh -c 'git remote add $0 $1; git fetch $0 && git checkout -b $2 $0/$2'
Com esse comando eu recebo o seguinte erro (eu não sei como quando eu copio isso para o shell funciona bem):
sh -c 'git remote add $0 $1: 1: sh -c 'git remote add $0 $1: Syntax error: Unterminated quoted string
O ;
ponto-e-vírgula inicia um comentário que encerra seu alias do Git no início tornando-o incompleto no momento em que o Git tenta executar o comando shell externo que você aliasa.
A página de manual do comando git-config
informa que ;
ponto-e-vírgula inicia um comentário que se estende até o final de uma linha porque os arquivos de configuração do Git são gravados no formato INI.