Como errores de fusión o errores de rebase. ¿Tiene un código de error único?
86
Configuré una prueba para fallar. Esto es lo que conseguí:
$ git merge newbranch
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
$ echo $?
1
Git regresa 0
cuando se fusiona correctamente, como se esperaba.
git merge
(en 1.7.4 - kernel.org/pub/software/scm/git/docs/v1.7.4/git-merge.html ) solo mencionan el estado de devolución en un lugar (si usa "- -ff-only "y no puede hacer una confirmación de avance rápido, devuelve un valor distinto de cero; no dice explícitamente lo que se devuelve si todo funciona o si hubo un conflicto de fusión.&&
; así es como se implementan sus pruebas.git rebase
el mismo comportamiento?En resumen, no. Verá el código de salida 1 para errores y 0 para éxito.
A partir de un grepping rápido de la fuente, hay algunos de los 127 y 128 esperados para sus propósitos específicos (comando no encontrado, errores ya reportados), y algunos códigos inusuales en algunos lugares, pero para errores comunes, es todo
exit(1)
.fuente
man
páginas para obtener más detalles.La ejecución
git status
en un repositorio que no es de git devuelve 128, no 1, lo que es útil para determinar rápidamente si existe o no un repositorio de git.fuente
El error 128, sin un mensaje de error de git, podría ser un problema general para "problema inesperado".
Recibí esto en operaciones que necesitaban modificar archivos bajo .git (por ejemplo, "
git checkout -- myfile
" para revertir un archivo modificado) por un usuario diferente. (En mi caso, "chmod -R og+w .git
" lo solucionó; naturalmente, ¡no lo haga a menos que comprenda las implicaciones de seguridad para su caso!)fuente
git push --delete origin a_remote_tag_name
Esto devuelve 256 si la etiqueta no existe usando la versión de git
1.8.3.1
Sería bueno tener una lista consolidada de códigos de retorno específicos devueltos por cada comando y lo que indican. Esto también podría ayudar a evitar cambiar los significados del código de retorno (en los que pueden confiar los scripts de automatización).
fuente
Git 2.24 (Q4 2019) ilustra cómo los
git
comandos devuelven código.Ver confirmar 50094ca , confirmar c1a6f21 , confirmar 854b5cb , confirmar dd2b6b6 , confirmar 6bd26f5 , confirmar c6ec6da , confirmar f2e2fa8 , confirmar 460609c , confirmar 92014b6 , confirmar 0ab74e9 , confirmar cb46c40 , confirmar b562a54 (27 de agosto de 2019), y confirmar fe de 20 por Denton Liu (
Denton-L
) .(Combinado por Junio C Hamano -
gitster
- en el compromiso 1c6fc94 , 30 de septiembre de 2019)Entonces, en lugar de escribir:
Tipo:
fuente