Git Bare
git clone --bare `<remote url>` `<local path>`
pushd `<local path>`
git config remote.origin.fetch 'refs/heads/*:refs/heads/*'
After that git fetch will update all branches.
See SO: Git Fetch fails to work on bare repo, but git pull works on normal repo for details