I think we'll have a Git deploy framework that will checkout the appropriate branch on the server.
That is a good approach, but it need to checkout/update the appropriate branch in different folders (and your webapp need to redirect pages according to the user choice)
A post-receive hook is typically used in order to trigger a per-branch process: see for instance "how to process files on a branch in post-receive hook in git"
#!/bin/bash
while read oldrev newrev ref
do
branch=`echo $ref | cut -d/ -f3`
if [ "master" == "$branch" ]; then
....