I have been using Git for a while now. The projects that I have been working on have not been too complicated in regards to branches/tags.
Have you thought about worktrees?
$ git worktree add ../branch2 branch2
This will create a working tree checkout out to branch2
$ cd ../branch2
$ git branch
* branch2
You only have 1 local repo, but 2 different working areas, one for master and the other for branch2.
That way you can keep the object files separate as well.