This could be solved reasonably well with ACLs. Give the git user selective write to the tree rooted at /srv/www/helloworld.
So, we need to keep things simpler!
I think that introducing users to ACLs, permissions and security is appropriate at this step. You can have a script/process in place that can take care of this but you should explain what's going on and why. Because if there's a security issue, they can at least have some kind idea of what happened.