Git alias multi-comandos com; e &&

3

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
    
por Karim Tarabishy 24.04.2015 / 18:27

2 respostas

6

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'"
    
por 24.04.2015 / 19:02
2

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.

    
por 25.04.2015 / 17:48