From my Mac using git version 2.9.2:
mbp02:~/develop/InkjetPlumber[testb2]$ git merge testb1
Auto-merging InkjetPlumber.pro
CONFLICT (content): Merge conflict in InkjetPlumber.pro
Automatic merge failed; fix conflicts and then commit the result.
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$ echo $?
1
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$ git --version
git version 2.9.2
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$
mbp02:~/develop/InkjetPlumber[testb2]$ git merge testb1
Auto-merging InkjetPlumber.pro
CONFLICT (content): Merge conflict in InkjetPlumber.pro
Automatic merge failed; fix conflicts and then commit the result.
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$ echo $?
1
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$ git --version
git version 2.9.2
mbp02:~/develop/InkjetPlumber[testb2 *+|MERGING]$
To copy to clipboard, switch view to plain text mode
So the git command exits with rc=1 on a merge conflict as shown on line 6 above.
Your example still shows that you're executing the QProcess with "git pull origin master" as the program to execute. Post #5 demonstrated the correct way to do this, the program is "git" and the arguments should be "pull", "origin", "master". Not sure if this is related to your issue, but you should make that change regardless.
Good luck.
Bookmarks