With git-tfs, you can associate workitems in a commit message using metadatas (and even force commit policy!).
They are automaticaly associated when the commit are done in the TFS server ( if you use the rcheckin command )
And there is even a git-note created on the git commit to have the title of the workitem and a link toward the workitem!
But to use rcheckin in a synchronisation process between git and TFS, you should before (abolutely) understand how it works!
When you rcheckin git commits in TFS, git-tfs, for each commit create the corresponding changeset in tfs and fetch the content of this changeset to recreate a git commit. So, even if it's (nearly) invisible for you in a normal worklow, you have the git commits after the rcheckin that are not the same than the original ones (there is a modification of the history!).
That could be a big problem if this git reporitory is supposted to be the central repository because every commiters will have to do a rebase. Otherwise, it shouldn't be a problem because it's completly transparent, except in special cases but easily solvable.
Not a perfect solution...