The git plugin presents a user interface and implements most of the Jenkins git use cases, including things like choosing which branches to monitor, polling for changes, publishing changes and tags, ignoring commits based on message content or submitter, remembering reference repositories, remembering timeout values, etc.
The git client plugin provides a git SCM abstraction and allows the user to select one of two implementations, either command line git, or the pure Java JGit implementation. It is called by the git plugin (and by other plugins which need git functionality). The git client plugin was created as a result of the refactoring which created git plugin 2.x. The git plugin 1.x code was hard to maintain, so Kohsuke Kawaguchi, Nicolas de Loof, and others created the git plugin 2.x implementation, with the git client plugin extracted as a git SCM API. If the command line git implementation is chosen, then the command line git installed on the slave which executes the job is used to perform the git operations. If the JGit implementation is chosen, then git operations are performed within the Jenkins process. The command line git implementation is the "reference implementation". It has the most features, and seems to be the most frequently used. There are a number of limitations in the JGit implementation which don't exist in the command line git implementation. Those use cases which it implements are generally as capable as the command line git implementation. There is a little more information on command line git vs. JGit at https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-WhyNotJGit . Mark Waite On Mon, Feb 8, 2016 at 11:58 AM Ashish Yadav <ashish.ya...@firemon.com> wrote: > I am running Jenkins LTS v1.609.3 on CentOS. > > I have the following plugins installed. > git plugin v2.2.7 > git client v1.11.0 > > > However, I also have git installed on master and the slaves. > > Master - - git version 1.7.12.4 > Slave #1- git version 1.8.2.1 > Slave #2 - git version 1.7.12.4 > Slave #3 - git version 1.8.3.1 > Slave #4 - git version 1.8.3.1 > Slave #5 - git version 1.8.3.1 > Slave #6 - git version 1.7.1 > Slave# 7 - git version 1.8.3.1 > Slave #8 - git version 1.8.2.1 > > > When a job executes on the master or the slave, which ‘git’ is it using? > Is it the version installed on the server or the git client plugin? > Also, why do I need both the git and git client plugin? Why not just the > git client plugin? > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jenkinsci-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/D2DE416D.1595E%25ashish.yadav%40firemon.com > <https://groups.google.com/d/msgid/jenkinsci-users/D2DE416D.1595E%25ashish.yadav%40firemon.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtEAWtW1T%3D6%3DgQfXFCxwfVMGWsF%2BA_QRbqgaZ%2BNXBXSiqg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.