Does git return specific return error codes?
Running git status
on a non-git repo returns 128, not 1, which is helpful in quickly determining whether a git repo exists or not.
git push --delete origin a_remote_tag_name
This returns 256 if the tag doesn't exist using git version 1.8.3.1
It would be nice to have a consolidated list of specific return codes returned by each command and what they indicate. This might also help prevent changing the return code meanings (which automation scripts might rely on).
In short, no. You're going to see exit code 1 for errors, and 0 for success.
From a quick grepping of the source, there are some of the expected 127 and 128 for their specific purposes (command not found, errors already reported), and a few unusual codes in a few places, but for run of the mill errors, it's all exit(1)
.
I set-up a test to fail. This is what I got:
$ 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 returns 0
when it merges correctly, as expected.