¿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?

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) .


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.


no hay ninguno para rebase, por ejemplo.
— gcb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.