¿Qué significa el doble guión? [–] opción hacer en git reset?

2 minutos de lectura

avatar de usuario
AngraX

He visto comandos como:

git reset e542 -- readme.txt

Entiendo que este comando pone en el índice el contenido del archivo readme.txt de commit e542. pero cual es el -- opción haciendo allí?

La página de manual de git reset lo enumera como opcional para los dos primeros formularios, pero no pude encontrar lo que significa.

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

  • En una nota al margen: encontrará esto -- sintaxis en muchas otras herramientas de línea de comandos, consulte rm, cp, chmod

    – Jonas Schäfer

    8 de enero de 2013 a las 15:13

  • Ver stackoverflow.com/questions/1192180/…

    – VoC

    08/01/2013 a las 15:50

  • @VonC – Gracias. Difícil de encontrar si no sabes qué buscar.

    – AngraX

    8 de enero de 2013 a las 21:16

  • posible duplicado de Significado de Git checkout guiones dobles

    – aleatorio

    23 mayo 2014 a las 12:32

  • @random ya que esta pregunta está en el contexto de reset en vez de checkout, argumentar que es un duplicado es difícil de vender. Tal vez solo necesitemos hacer una pregunta canónica para este tipo de cosas para Git, como “¿Qué significa un guión doble seguido de una ruta en Git?”.

    usuario456814

    23 mayo 2014 a las 20:40

avatar de usuario
Anders Johansson

-- separa los nombres de las ramas de los nombres de los archivos, en caso de que haya alguna ambigüedad (si tiene una rama y un archivo con el mismo nombre). Si no hay ambigüedades, no necesita el --.

También como mencionó Jonas Wielicki, esto permite nombres de archivo que comienzan con un -; de lo contrario, se interpretarían como opciones de línea de comandos.

  • otra razón: los nombres de archivo que comienzan con un -.

    – Jonas Schäfer

    8 de enero de 2013 a las 15:06

  • Gracias. Me imaginé que podría ser un patrón común usado en los comandos *nix.

    – AngraX

    08/01/2013 a las 15:25


avatar de usuario
Andy

Creo que simplemente separa la confirmación (que es un parámetro opcional) de la lista de rutas. Si no tuviera el separador, no habría una forma segura de distinguir si el primer parámetro era una ruta o una confirmación.

  • Algo incorrecto. Git bastante bien puede hacer eso. Las confirmaciones son nombres de rama o ID de confirmación u otros tipos de referencias, todas las cuales se pueden verificar fácilmente (las ID de confirmación son valores hexadecimales, otros tipos de referencias se pueden encontrar en ciertos directorios en .git). Entonces alli esta a forma de distinguir el primer parámetro de una ruta si está destinado a ser un compromiso, pero solamente si es inequívoco.

    – Jonas Schäfer

    8 de enero de 2013 a las 15:11


  • Eso es lo que quise decir, pero mi respuesta no lo capturó correctamente.

    – Andy

    9 de enero de 2013 a las 18:19

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad