I have a job that verified
JENKINS-38240 is still resolved and that the git publisher can push a tag even when the freestyle project performs a checkout to a subdirectory. The test is known to only work with command line git. It fails with JGit because JGit does not implement the git publisher.
Unfortunately, in my case, the repository is small enough that the git tool chooser chooses JGit as the implementation instead of command line git. If I disable the git plugin performance improvements from "Manage Jenkins" -> "Configure System", then the publishing works.
The git publisher is a post build action, so it cannot be as easily detected as the other implementations that are used to decide if an alternate implementation may be recommended by the git tool chooser.
If a job uses the git publisher post build action, the git tool chooser should not choose either jgit or jgitapache. See the verification job definition in my private repository.