If this is just for being able to easily switch branches, have you considered using git worktrees? Essentially you have have multiple branches checked out into different directories at the same time. The key point though is that all git refs are still maintained in a single place so you are not actually having full clones for each worktree that you have.
I personally use Emacs and magit which has great support for worktrees. I do not know if the VSCode git integration supports it.
I personally use Emacs and magit which has great support for worktrees. I do not know if the VSCode git integration supports it.