Essential Guide

Browse Sections

BACKGROUND IMAGE: deepagopi2011/

This content is part of the Essential Guide: Master Git basics and branch into DVCS
Manage Learn to apply best practices and optimize your operations.

How to use the Jenkins Git Plugin: Tips and tricks

The Jenkins Git Plugin is the cornerstone utility for connecting to both local and remote repositories, but the add-on provides much more than just a connection to source code repositories stored on GitHub, GitLab, Bitbucket or even the local file system. Here are five cool continuous integration functions, from the Jenkins Git push to the ability to perform a sparse checkout, which you probably didn't realize the Jenkins Git Plugin could do.

1. Poll the Git repository for changes

Once the Jenkins Git Plugin is installed and configured, your build jobs can poll any local or remote repositories for new commits. The Jenkins environment uses a cron job scheduling syntax, so polling the repository hourly, daily, monthly or any combination thereof is possible. If new commits are detected, the Jenkins Git Plugin will kick off the build.

It should be noted that the Jenkins Git Plugin will be looking for commits on only specific branches, so the topic branches developers use to create features and bug fixes won't likely trigger a build. But if someone merges a new feature into the master branch, the Jenkins build job will run.

Jenkins build trigger
This is how you configure Jenkins and Git build triggers.

2. Build multiple branches

Jenkins beginners often get the false impression that a build job can only be associated with a single Git branch, but nothing could be further from the truth. Does your Git environment have a feature, fix and master branch? Are there separate user story branches or branches that map to long-lasting Agile epics? You can have the Jenkins Git Plugin build against each of these branches every time it is invoked.

build multiple branches
Jenkins Git Plugin enables you to build multiple branches in a single job.

3. Merge before build fix and feature branches

Jenkins merge before build
Configure your Jenkins merge before build with an octopus merge strategy.

Are your developers supposed to merge their branches into the main development trunk line every night? Do the developers always leave the office before doing so? Using the Merge before build feature, Jenkins can be configured to locally merge any number of development branches and then perform the build on the consolidated code base. If merges occur without conflicts, your developers won't need to perform daily merges anymore.

4. The Jenkins Git push

Jenkins Git tipsJenkins Git Plugin has many
helpful tricks.

The Jenkins Git push is one of my favorite hidden features of the plug-in.

When Jenkins jobs are configured to merge branches together before running a build, the commit is local, and there won't automatically be a push of the commit back to the repo from which Git pulls. But you can configure the Jenkins plug-in to perform a Git push back to the remote repo, which then incorporates the merge's commit. The Jenkins Git push feature ensures that the commit becomes part of the distributed version control system's global history.

Jenkins Git push
Perform a Jenkins Git push as a post-build action.

5. Issue a Git sparse checkout

sparse git checkout
Perform a sparse checkout with Jenkins Git Plugin.

Repositories can get huge, and pulling down every file and every delta can consume both network resources and disk space. But since version 1.7 of Git, it has been possible to perform a sparse checkout, where only certain folders and subfolders are pulled back from the source code repository. By asking the Jenkins Git Plugin to perform a sparse checkout, your builds will be more focused, run faster and consume fewer resources than a full Git fetch or clone.

Once installed, Jenkins Git Plugin enables your build jobs to perform plenty of other interesting functions, but these are five of the most useful. Integrate these features into your continuous integration builds, and get the most out of your Jenkins CI tool.

Learn Git fast

Interested in learning more about Git? Check out these Git tutorials and resources:

View All Videos

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What is your favorite way to integrate Jenkins and Git together in your continuous integration build jobs?
Great tips! Thanks so much for describing those ways that the git plugin can help continuous integration efforts.

Some teams may have the challenge of working with large git repositories. Those users may benefit from the "Git in the large" presentation that I shared at Jenkins World 2017.

I also really like the additional automation that the GitHub branch source and Bitbucket branch source plugins provide as multibranch pipelines.
Every thing of writing an article for us about Enterprise Git and GitHub? The Git overview you presented at Jenkins World isn't a bad start.
Yes, I've considered an article about organization folders, multibranch pipelines, branch sources, and more.  I have a skeleton proposal for the Google Season of Docs project to improve the documentation related to the layers of Jenkins that involve git.

Are you interested in helping with the project?  Either as a reviewer or as a contributor?