2010-04-04 8 views

Respuesta

54

No todos los comandos apoyarían naturalmente una carrera en seco directamente.

  • git merge tiene its own option (git merge --no-commit --no-ff)
  • pero git pull does not really need it ('git fetch origin', entonces un 'git log master..origin/master', antes de que un git merge origin/master)
    (pero git push tiene una opción de funcionamiento en seco)

Como J.C. Hamano summarizes:

Hay cosas que no se implementan en git porque no tienen sentido , y hay cosas que no se implementan en git porque nadie tuvo comezón por arañar.
Para decirlo de otra manera, tendemos a implementar solo cosas que son reales, necesidades demostradas del mundo real y solo cuando la adición tiene sentido como una parte coherente del sistema.


iboisver comentarios:

Otra cosa a tener en cuenta es que los comandos como git add y git rm permiten la opción -n de línea de comandos para especificar el funcionamiento en seco, mientras que en git commit, la La opción -n significa algo completamente diferente.
Así que asegúrese de revisar la página del manual

git commit -n:

-n 
--no-verify 

Esta opción no pasa por los ganchos pre-comprometerse y comprometer-MSG. Vea también githooks(5).

+2

Otra cosa a tener en cuenta es que los comandos como 'git-add' y' git-rm' permiten que la opción _-n_ de la línea de comando 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 de manual. – iboisver

+1

@iboisver comentarios interesantes, gracias. He incluido su comentario en la respuesta para una mayor visibilidad. – VonC

8

Aunque no siempre hay una bandera --dry-run para cada comentario, generalmente hay equivalentes. Por ejemplo, this previous question muestra qué hacer para git merge.

+0

no hay ninguno para 'rebase', por ejemplo. – gcb

Cuestiones relacionadas