2014-08-27 11 views
7

Voglio creare un file batch che inizializzi tutte le chiavi/valori nel mio file .gitconfig.escape doppi apici in git config da cmd

devo guai cercando di impostare la seguente sezione da cmd:

[mergetool "p4merge"] 
    cmd = p4merge "$BASE" "$LOCAL" "$REMOTE" "$MERGED" 

ho provato:

git config --global mergetool.p4merge.cmd "p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" 

Ma il risultato è:

[mergetool "p4merge"] 
    cmd = p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\" 

Come dovrei scappare che doppie virgolette da cmd?

+0

Hai provato da un cmd.exe o un bash git? – VonC

+0

Im eseguendolo da cmd – lante

+0

Prova l'altra opzione con la citazione singola, per vedere se funziona meglio. – VonC

risposta

4

La risposta a "Git on Windows: How do you set up a mergetool?" propone:

  • Da una sessione git bash:
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"' 
  • o, da una finestra cmd.exe shell:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"" 

quindi dipende se avete lanciato git-bash.bat o git-cmd.bat

+0

Grazie per la tua risposta. Ecco cosa ho provato da 'cmd', ma sto ottenendo' cmd = p4merge.exe \ "$ BASE \" \ "$ LOCAL \ "\" $ REMOTE \ "\" $ MERGED \ "' nel file '.gitconfig', letteralmente (intendo con" \ "). Va bene? – lante

+0

@lante sì, le quotazioni esterne dovrebbero scomparire una volta in '.gitconfig'. Il' '' dovrebbe funzionare, ma lo proverei ancora prima. – VonC

+0

'$ LOCAL' e' $ REMOTE' dovrebbero essere nell'ordine inverso: '\" $ BASE \ "\" $ REMOTE \ "\" $ LOCAL \ "\" $ MERGED \ "' –