2013-01-08 8 views
6

comandi che ho visto come:Cosa fa l'opzione [-] double-dash su git reset?

git reset e542 -- readme.txt 

ho capito questo comando mette nell'indice il contenuto del file readme.txt dal commettere e542. Ma che cosa fa l'opzione --?

La pagina man di git reset lo elenca come facoltativo per le prime due forme ma non sono riuscito a trovare cosa significhi.

git reset [-q] [<commit>] [--] <paths>… 
git reset (--patch | -p) [<commit>] [--] [<paths>…] 
+1

Su un sidenote: troverete questa sintassi '' --'' su molti altri strumenti da riga di comando, vedere '' rm'', '' cp'', '' chmod'', ... –

+1

Vedere http: //stackoverflow.com/questions/1192180/deleting-a-badly-named-git-branch/1192194#1192194 – VonC

+0

@VonC - Grazie. Difficile da trovare se non sai cosa cercare. – AngraX

risposta

10

-- separa nomi dei rami dai nomi dei file, nel caso in cui non v'è alcuna ambiguità (se si dispone di un ramo e un file con lo stesso nome). Se non ci sono ambiguità, non è necessario lo --.

Anche come citato da Jonas Wielicki, questo consente nomi di file che iniziano con -; questi sarebbero altrimenti interpretati come opzioni da linea di comando.

+3

un altro motivo: nomi di file che iniziano con un '' -''. –

+0

Grazie. Ho immaginato che potesse essere un modello comune usato nei comandi * nix. – AngraX

0

Credo che separa semplicemente il commit (che è un parametro facoltativo) dall'elenco dei percorsi. Se non avessi il separatore non ci sarebbe un modo sicuro per distinguere se il primo parametro era un percorso o un commit.

+0

Un po 'errato. Git piuttosto bene può farlo. I commit sono nomi di rami o ID di commit o altri tipi di riferimenti, che possono essere facilmente controllati (gli ID di commit sono esadecimali, altri tipi di riferimenti possono essere trovati in determinate directory in "' .git''). Quindi esiste un * modo * per distinguere il primo parametro da un percorso se è inteso come un commit, ma solo se è univoco. –

+0

Questo è quello che intendevo, ma la mia risposta non l'ha catturato correttamente. – Andy