Como erros de mesclagem ou erros de rebase. Ele tem um código de erro exclusivo?
86
Eu configurei um teste para falhar. Isso é o que eu tenho:
$ 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 retorna 0
quando se mescla corretamente, como esperado.
git merge
(em 1.7.4 - kernel.org/pub/software/scm/git/docs/v1.7.4/git-merge.html ) apenas mencionam o status de retorno em um lugar (se você usar "- -ff-only "e não pode fazer um commit de avanço rápido, ele retorna diferente de zero - não diz explicitamente o que é retornado se tudo funcionar ou se houve um conflito de fusão.&&
; é assim que seus testes são implementados.git rebase
o mesmo comportamento?Resumindo, não. Você verá o código de saída 1 para erros e 0 para sucesso.
A partir de um rápido grep da fonte, existem alguns dos 127 e 128 esperados para seus propósitos específicos (comando não encontrado, erros já relatados) e alguns códigos incomuns em alguns lugares, mas para erros de run of the mill, é tudo
exit(1)
.fonte
man
páginas para detalhes.A execução
git status
em um repo não git retorna 128, não 1, o que é útil para determinar rapidamente se um repo git existe ou não.fonte
O erro 128, sem nenhuma mensagem de erro do git, pode ser uma solução geral para "problema inesperado".
Eu estava recebendo isso em operações que precisavam modificar arquivos em .git (por exemplo, "
git checkout -- myfile
" para reverter um arquivo modificado) por um usuário diferente. (No meu caso, "chmod -R og+w .git
" corrigiu; naturalmente, não faça isso a menos que você entenda as implicações de segurança para o seu caso!)fonte
git push --delete origin a_remote_tag_name
Isso retorna 256 se a tag não existe usando a versão git
1.8.3.1
Seria bom ter uma lista consolidada de códigos de retorno específicos retornados por cada comando e o que eles indicam. Isso também pode ajudar a evitar a alteração dos significados do código de retorno (nos quais os scripts de automação podem depender).
fonte
O Git 2.24 (quarto trimestre de 2019) ilustra como os
git
comandos retornam o código.Ver commit 50094ca , commit c1a6f21 , commit 854b5cb , commit dd2b6b6 , commit 6bd26f5 , commit c6ec6da , commit f2e2fa8 , commit 460609c , commit 92014b6 , commit 0ab74e9 , commit cb46c40 , commit b562a54 (27 de agosto de 2019) e commit b562a54 (27 de agosto de 2019) por Denton Liu (
Denton-L
) .(Incorporado por Junio C Hamano -
gitster
- no commit 1c6fc94 , 30 de setembro de 2019)Então, em vez de escrever:
Tipo:
fonte