Did you try to use the post-receive hook instead? Maybe something is not yet finished in the post-update and that is why the merge is not working.
Also I think you should try to include git reset --hard in the script so that the git status is synchronised with the file system.