2010-03-27 27 views

Respuesta

39

El -- separa las rutas de las otras opciones. Desde el documentation:

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

Si no existiera esta notación los dos comandos siguientes serían ambiguas:

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

Con la notación -- está claro lo que se quiere decir:

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

La documentación a la que he vinculado anteriormente incluye un example de cuándo podría necesitarla:

$ git checkout hola.c

Si usted tiene una rama desafortunado que se nombra hola.c, este paso podría ser confundido como una instrucción para cambiar a esa rama. En su lugar debe escribir:

$ git checkout - hola.c

+2

Por supuesto, si usted tiene un camino llamado '-f', que plantea otras preguntas, como por qué necesita un camino llamado' - f'. :) –

+0

@John Feminella: Cierto, encontré un mejor ejemplo. –

+0

El - no solo separa las rutas de las opciones. También necesita - separar ese separador de un archivo llamado - como en 'git checkout - -'. –

Cuestiones relacionadas