Fuga involontaria di virgolette doppie in Bash


2

Sto cercando di aggiungere il seguente alias Git come comando in Git bash (utente Windows qui).

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

Niente di tutto questo sembra funzionare. L'ex tiri un errore e la seconda sfugge la doppia citazione in .gitconfigayolo = \"!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"'

Aggiornamento: l'errore visualizzato dal primo 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

Qual è l'errore?
Ouroborus,

Domanda aggiornata con l'errore.
Collizo4sky,

Risposte:


1

Il tuo alias non sta cercando di fare esattamente quello che git clonegià fa?


$1non farà nulla di utile qui - l'espansione dell'alias di Git aggiunge semplicemente i parametri forniti dall'utente alla fine del comando configurato; non dice alla shell che dovrebbero essere mappati in $ @.

Ci sono due opzioni qui:

  • Definire una funzione ed eseguirla:

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

    In questo modo $ 1 significherà i parametri della funzione e funzionerà correttamente.

  • Scrivi uno script chiamato git-yolo:

    (non deve essere / bin / sh, potrebbe essere bash o perl o altro)

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

    Metti lo script ovunque nelle tue $PATHdirectory configurate, ad es /usr/local/bin/git-yolo. Questo farà riconoscere a Git un git yolosottocomando.


Ciao, grazie per la tua risposta. Sono nuovo di bash scripting. Il problema è, modificando .gitconfig e aggiungendo yolo = "!git init && git remote add origin $1 && git pull"lavori quando git yoloviene eseguito il comando. funziona perfettamente. Il clone Git funziona solo quando la directory non è vuota. Tutto quello che voglio è come aggiungere l'alias tramite git config --global alias.yolo ... Voglio solo che la doppia virgoletta non sia sfuggita.
Collizo4sky,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.