This was always the biggest problem with the current git-tf implementation. Unfortunately, at the moment I can suggest nothing but having separate repositories for different branches.
The main problem with it is the difference between Git and TFS branching philosophy. For example, in TFS you can merge a subfolder. AFAIU, In Git you can merge only entire repository. And there may be other problems due to the difference. I wanted a simple working solution, so I didn't do it. I will make a research on this
There is a related problem: right now a git-tf user has to map a local folders to a TFS folder manually. If we figure out how to deal with branching differences, I think we could kill two birds with one stone with the following solution:
git-tf-clone will map a TFS folder to a ".git/tf/branches/<branch>", so first of all separate the a Git repository folder and a TFS folder. Each TFS branch will sit in its own folder, for instance .git/tf/branches/Main, .git/tf/branches/Development. Also the "tfs" branch will probably renamed to "tfs/master" and there may be other "tfs branches".
I should look what
Git-tfs is doing in this regard.
-Nodir