Is there a simple git command that can tell (e.g. by exit status) whether a work tree has unmerged paths / a merge conflict? Like when a git merge operation fails and git returns to the shell and git status shows that there are merge conflicts.
I found so far git status and a list of values it would output in an unmerged situation (the XY status codes then):
X          Y     Meaning
-------------------------------------------------
D           D    unmerged, both deleted
A           U    unmerged, added by us
U           D    unmerged, deleted by them
U           A    unmerged, added by them
D           U    unmerged, deleted by us
A           A    unmerged, both added
U           U    unmerged, both modified
-------------------------------------------------
So that the only way to detect so for me so far would be to match against a list of XY codes that represent unmerged, e.g.:
AA | DD | [ADU]U | U[AD]
(added horizontal white space for readability)
A check with zero exit status in case of unmerged paths (or non-zero if none) then would be (if my understanding of git status is correct here):
git status --porcelain -z \
  | grep -q -z '^\(AA\|DD\|[ADU]U\|U[AD]\) '
This becomes rather convoluted and I'm looking for a more simple command (best with git only).
I want to use it in bash script for a local build that rejects further processing if there are any unmerged paths in the git repositories work tree.
 
    