2013-04-16 15 views
38

Cercando di prendere this un passo ulteriore, come potrebbe questo lavoro in una shell bash norma:Uso di apostrofo (virgoletta singola) in un messaggio di commit git tramite riga di comando?

git commit -m 'cracked enigma's code' 

Potrebbe questo semplicemente essere fatto con barra inversa fuoriuscita modo:

git commit -m 'cracked enigma\'s code' 

Inoltre, come potrebbe si usano le virgolette? Anche con backslash-escape? Sarebbe il modo migliore? Ci sono dei buoni modi alternativi?

git commit -m 'cracked the "real" enigma's code' 
+3

* "Questo potrebbe semplicemente essere fatto con backslash che fugge in questo modo "*: potresti solo provare te stesso e scoprirlo! –

+0

@FelixKling vero, ma sono un principiante e non mi sento ancora coraggioso. –

+1

Questo non ha davvero nulla a che fare con il coraggio. È sempre possibile creare un repository git vuoto, creare un file, creare il commit e quindi vedere qual è il risultato. La domanda in sé va bene, ovviamente. –

risposta

61

Utilizzare le virgolette doppie:

git commit -m "cracked enigma's code" 

Oppure, se il messaggio contiene altri caratteri speciali, usare le virgolette o backslash solo per la singola citazione:

git commit -m 'cracked $enigma'"'"'s code' 
git commit -m 'cracked $enigma'\''s code' 
+2

cosa sta facendo il simbolo '$'? non è quello sth per definire una variabile? (scusa se questo è troppo bash-basic ...) –

+2

È lì per mostrare perché le virgolette semplici non funzionano. Puoi provare con 'echo' invece di' git commit -m' – choroba

+10

Fondamentalmente è perché all'interno di virgolette doppie, le variabili vengono espanse; e '$ enigma' sarebbe un riferimento variabile. Quindi, se vuoi che il tuo messaggio contenga un vero e proprio simbolo del dollaro, non puoi usare le virgolette doppie. – poke

13

Non v'è alcuna necessità di sfuggire al carattere ' se il commit è doppio citato.

git commit -m "cracked enigma's code" 

EDIT: In ogni caso, quando si dispone di alcuni caratteri speciali da aggiungere nel messaggio di commit preferisco modificare in un editor (come nano o vim), commettere senza l'opzione -m.

git commit 

E quindi inserire il messaggio e uscire. È più comodo invece di pensare a come sfuggire a tutte quelle citazioni e virgolette.

+0

Questo non è vero per la corrispondenza del modello 'git commit -m" non è stata esaustiva, scalac! "' Su OSX, git 2.15.1. Funziona se escludo l'esclamazione. Cose strane. –

Problemi correlati