2010-03-27 17 views

risposta

39

Il separa i percorsi dalle altre opzioni. Dalla documentation:

git checkout [-f|--ours|--theirs|-m|--conflict=<style>] [<tree-ish>] [--] <paths>... 

Se questa notazione non esistesse i seguenti due comandi sarebbero ambigua:

git checkout <tree-ish> <path1> <path2> 
git checkout <path1> <path2> <path3> 

Con il -- notazione è chiaro che è destinata:

git checkout <tree-ish> -- <path1> <path2> 
git checkout -- <path1> <path2> <path3> 

La documentazione che ho collegato sopra include uno example di quando potrebbe essere necessario:

$ git checkout ciao.c

Se si dispone di un ramo sfortunato che è denominato ciao.c, questo passaggio sarebbe stato confuso come istruzione per passare a quel ramo. Si dovrebbe invece scrivere:

$ git checkout - ciao.c

+2

Naturalmente, se si dispone di un percorso chiamato '-f', che solleva altre questioni, come il motivo per cui è necessario un percorso chiamato' - f'. :) –

+0

@John Feminella: Vero, ho trovato un esempio che spero migliore. –

+0

Il - non solo separa i percorsi dalle opzioni. Devi anche - separare quel separatore da un file chiamato - come in 'git checkout - --'. –