Under Advanced Features in
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin, the docs talk about pre-build branch merging. You can specify the merge type as well - ff, or no-ff. By default, the plugin makes a new tag. As a post-build tag, you can then push the branch and tag back to the repository.
You can provide the url as a parameter to the job and then use that variable as the repository url.
A warning though, a non-ff merge is done as (git merge --no-ff $GIT_SHA) and you can't customize the tag name. This method might not be flexible enough for your needs. Typically, I do manually merging and tagging as build steps.