I would definitely use git-p4 to directly interface Git with the Perforce repository. At the most basic level, this adds two new commands,
git p4 rebase and
git p4 submit that handle the mechanics of fetching and pushing to Perforce repositories. Once you have your repo in Git, you can use all the good features you're accustomed to such as lightweight local branching.
When cloning for the first time (
git p4 clone), I had trouble using the
@all revspec to get the entire repository history. I don't know whether this was specific to the Perforce server I was using, or whether it's a wider problem, but if the first clone hangs then try it without
@all to just start with the current revision.
You can find the
git-p4 script in
contrib/fast-import in the Git source distribution.