I use the rcheckin command, which commits your new git change tables to tfs one at a time, reloading the remaining commits after each tfs commit, to get a normal tree. Using the checkintool subcommand, mergecommit is created - I don’t remember that git compromise is performed.
So, we use the usual git workflow: we check the function branch, work on it, the verification wizard and "git tfs pull", if necessary, reinstall the function branch against the master, and then combine the function for mastering and do it git tfs rcheckin. Finally, remove the function branch. In rare cases, this did not succeed (due to the locked tfs file), rcheckin stopped, leaving everything in a reasonable state, so that as soon as the obstacle was cleared, there was no problem continuing.
, git -tfs TFS .