¿Todos los comandos de git tienen una opción de ejecución en seco?

81

¿Todos los comandos de git tienen una opción --dry-run, o una que indique lo que haría el comando sin hacerlos realmente?

vfclists
fuente

Respuestas:

75

Naturalmente, no todos los comandos admitirían una ejecución en seco directamente.

  • git merge tiene su propia opción ( git merge --no-commit --no-ff)
  • pero git pull realmente no lo necesita (' git fetch origin', luego a ' git log master..origin/master', antes de a git merge origin/master)
    (pero git pushtiene una opción de ejecución en seco)

Como resume JC Hamano :

Hay cosas que no se implementan en git porque no tienen sentido, y hay cosas que no se implementan en git porque nadie tenía ganas de rascar.
Para decirlo de otra manera, tendemos a implementar solo cosas para las que existen necesidades reales y demostradas del mundo real y solo cuando la adición tiene sentido como una parte coherente del sistema.


iboisver comenta:

Otra cosa a tener en cuenta es que a los comandos les gusta git addy git rmpermiten que la -nopción de línea de comandos especifique ejecución en seco , mientras que en git commit, la -nopción significa algo completamente diferente.
Así que asegúrese de consultar la página del manual

git commit -n:

-n
--no-verify

Esta opción omite los ganchos pre-commit y commit-msg. Consulte también githooks (5) .

VonC
fuente
2
Otra cosa a tener en cuenta es que los comandos como git-addy git-rmpermiten que la opción -n de la línea de comandos especifique la ejecución en seco, mientras que en git-commit, la opción -n significa algo completamente diferente. Así que asegúrese de consultar la página del manual.
iboisver
1
@iboisver comentarios interesantes, gracias. He incluido su comentario en la respuesta para mayor visibilidad.
VonC
Hubiera querido --dry-run en "git stash", especialmente al presionar un directorio "git stash push - / dir"
Gaurang Patel
@GaurangPatel de acuerdo. Eso se discutió en 2017 aquí: public-inbox.org/git/…
VonC
13

Si bien no siempre hay una --dry-runbandera para cada comentario, generalmente hay equivalentes. Por ejemplo, esta pregunta anterior muestra qué hacer git merge.

Ámbar
fuente
no hay ninguno para rebase, por ejemplo.
gcb