Escape não intencional de aspas duplas no Bash

2

Eu estou tentando adicionar o seguinte alias do Git como um comando no Git bash (usuário do windows aqui).

yolo = "!git init && git remote add origin $1 && git pull"

Nada disso parece estar funcionando. O primeiro lança um erro e este último escapa as aspas duplas em .gitconfig to yolo = \"!git init && git remote add origin $1 && git pull\"

$ git config --global alias.yolo "!git init && git remote add origin $1 && git pull"

$ git config --global alias.yolo '"!git init && git remote add origin $1 && git pull"'

Atualização: o erro exibido pelo primeiro comando é

git config --global alias.yolo "git config --global alias.yolo '"!git init && git remote add origin $1 && git pull"' init && git remote add origin $1 && git pull"
usage: git remote add [<options>] <name> <url>

-f, --fetch           fetch the remote branches
--tags                import all tags and associated objects when fetching
                      or do not fetch any tag at all (--no-tags)
-t, --track <branch>  branch(es) to track
-m, --master <branch>
                      master branch
--mirror[=<push|fetch>]
                      set up remote as a mirror to push to or fetch from
    
por Collizo4sky 31.12.2015 / 06:00

1 resposta

2

Seu alias não está tentando fazer exatamente o que o git clone já faz?

$1 não fará nada útil aqui - a expansão de alias do Git simplesmente anexa os parâmetros fornecidos pelo usuário no final do comando configurado; ele não diz ao shell que eles devem ser mapeados em $ @.

Existem duas opções aqui:

  • Defina uma função e execute-a:

    yolo = "!fred() { git init && git remote add origin \"$1\" && git pull; }; fred"
    

    Desta forma, $ 1 significará os parâmetros da função e funcionará corretamente.

  • Escreva um script chamado git-yolo :

    (não precisa ser / bin / sh, pode ser bash ou perl ou qualquer coisa)

    #!/bin/sh
    git init && git remote add origin "$1" && git pull
    

    Coloque o script em qualquer lugar nos seus diretórios $PATH -configurados, por exemplo %código%. Isso fará com que o Git o reconheça como um subcomando /usr/local/bin/git-yolo .

por 31.12.2015 / 07:35