2011-10-18 11 views
7

Ho aggiunto file nel mio repository git che voglio rimuovere ora. L'ho cancellato con rm XXX. Ora, git status mi mostra:Impossibile da rm con caratteri speciali

Changed but not updated: 
    deleted: "Sche\314\201ma application + interface.graffle" 

Non importa quanto mi git rm esso, ho ancora una:

fatal: pathspec 'Schêma application + interface.graffle' did not match any files 

ho cercato di scappare spazi bianchi con \, per sfuggire \ con \\, per sfuggire " con \". Non importa cosa ho provato, non è riuscito.

Avete suggerimenti?

+0

Con questo tipo di domande è molto importante per far sapere quale sistema operativo si sta utilizzando .. –

+0

sicuro, anche io sono sorpreso di non averlo scritto. Darwin MacBook-de-XXX.local 10.8.0 Darwin Kernel Versione 10.8.0 : Mar 7 giu 16:33:36 PDT 2011; root: xnu-1504.15.3 ~ 1/RELEASE_I386 i386 = Mac Snow-Leopard – iwalktheline

risposta

24

Questo rileverà la rimozione:

git add -u 
0

provare git gui. Probabilmente potresti fuggire correttamente, ma potrebbe essere troppo disturbo di quanto valga. Dovrebbe fuggire correttamente.

Se il problema riguarda la rimozione temporanea, è sufficiente aggiungere git add -A all'indice.

0

Avvolgere tra virgolette singole.

git rm '"Sche\314\201ma application + interface.graffle"' 

Se è necessario sfuggire alle virgolette singole in un nome file, avvolgere quelle tra virgolette doppie. Quindi, se per qualche motivo il nome del file è '"(che è citazione singola, doppia citazione), utilizzare

git rm "'"'"' 

in cui la prima serie di doppi apici è avvolgente l'apostrofo, e l'insieme fine del apici è avvolgendo . la doppia citazione

Questo è per Bash, in generale, non solo git più sul preventivo follia qui:. How to escape single-quotes within single-quoted strings?