Git with Jenkins."> git |必威国际有限公司Jenkins插件 - betway必威足彩

吉特

ID:吉特

更新日志的GitHub版本

版本说明记录在GitHub版本自2019年7月1日起(git plugin 3.10.1及更高版本)。之前的版本说明记录在git插件库中更改日志

管道

git插件提供了一个与管道SCM一起使用的SCM实现结帐. 这个管道语法片段生成器引导用户选择签出选项。

90秒的视频剪辑下面介绍管道语法片段生成器,并展示如何使用它为Jenkins管道生成步骤。必威国际有限公司

管道的语法"style=

Multibranch管道

git插件为Jenkins提供了一个多分支提供商必威国际有限公司Multibranch管道和詹金斯必威国际有限公司组织文件夹. 这个吉特plugin multibranch provider is a "base implementation" that uses command line git. Users should prefer the multibranch implementation for their git provider when one is available. Multibranch implementations for specific git providers can use REST API calls to improve the Jenkins experience and add additional capabilities. Multibranch implementations are available forGitHubBitbucket都GitLabGitea,Tuleap

30分钟视频剪辑下面介绍多分支管道。

multibranch管道"style=

Git凭据绑定

git插件提供Git用户名和密码绑定允许经过身份验证的Git操作HTTPHTTPS在管道作业中使用命令行git协议。

控件可以访问git凭据绑定withCredentials迈出的一步凭证绑定插件。的绑定检索凭据凭证插件。

Git用户名和密码绑定

此绑定提供身份验证支持HTTP在管道作业中使用命令行git协议。

过程
  1. 单击管道语法代码生成器并选择withCredentials步骤,添加Git用户名和密码绑定。

  2. 选择所需的凭据和Git工具名称,具体到生成的Pipeline代码段。

Git-Username-and Password-Binding-Pipeline-Job"style=

使用了两个变量绑定,GIT_USERNAMEGIT_PASSWORD,以传递用户名和密码上海蝙蝠,powershell内的步骤withCredentials一块管道工作。变量绑定即使JGitJGit与Apache HTTP客户端正在使用git实现。

壳牌例子
withCredentials([gitUsernamePassword(credentialsIdmy-credentials-idgitToolNamegit-tool))) {shgit获取——所有
批处理的例子
withCredentials([gitUsernamePassword(credentialsIdmy-credentials-idgitToolNamegit-tool))){蝙蝠Git子模块update——init——recursive
Powershell的例子
withCredentials([gitUsernamePassword(credentialsIdmy-credentials-idgitToolNamegit-tool))) {powershellGit推送

配置

存储库

存储库配置"style=

git插件从一个或多个远程存储库获取提交,并在代理工作空间中执行签出。存储库及其相关信息包括:

存储库URL

远程存储库的URL。git插件将远程存储库URL传递给git实现(命令行或JGit)。有效的存储库URL包含httpssshscp吉特本地文件,以及其他形式。中介绍了有效的存储库URL表单git文档

凭证

使用凭据使用凭据使用必威国际有限公司詹金斯凭证插件. 这个y are selected from a drop-down list and their identifier is stored in the job definition. Refer to使用凭证有关受支持的凭据类型的详细信息。

的名字

Git使用一个简短的名称来简化用户对远程存储库URL的引用。默认短名称为起源.可以分配其他值,然后在整个作业定义中使用以引用远程存储库。

Refspec

refspec将远程分支映射到本地引用。它定义了将从远程存储库获取到代理工作空间的分支和标记。

refspec定义将检索的远程引用以及它们如何映射到本地引用。如果留空,则将默认为正常情况git获取行为和将检索所有分支。对于大多数情况,这种默认行为已经足够了。

默认的参照规范为+ refs /头/ *:refs /遥控器/ REPOSITORYNAME /其中REPOSITORYNAME是您在上面的存储库“Name”字段中指定的值。默认的refspec检索所有分支。如果签出只需要一个分支,那么更严格的refspec可以减少从远程存储库到代理工作空间的数据传输。例如,+ refs /头/主:refs /遥控器/产地/主人将只检索主分支,其他什么也不检索。

refspec可以与荣誉反射初始克隆选项先进的克隆行为限制映射到本地引用的远程分支的数量。如果“honor refspec on initial clone”未启用,则为其初始获取提供默认refspec。这保持了与先前行为的兼容性,并允许作业定义决定是否应该在初始克隆上遵守refspec。

可以输入多个refspec,使用空格分隔它们。refspec值+ REFS / HEAD / MASTER:REFS / remotes / Origin / Master + Ref / Head / Develop:Ref / Remotes / Origin / Develop检索主分支和开发分支,而不检索其他分支。

指的是git refspec文档了解更多refspec细节。

使用凭证

git插件支持用户名/密码凭证和私钥凭证必威国际有限公司詹金斯凭证插件.它不支持其他凭证类型,如机密文本、机密文件或证书。从作业定义下拉菜单中选择凭据,或在管道作业定义中输入凭据标识符。

控件访问远程存储库时HTTP或HTTPS协议,插件需要一个用户名/密码凭证.其他凭据类型将不适用于HTTP或HTTPS协议。

控件访问远程存储库时ssh协议,则插件需要一个SSH私钥证书.其他凭据类型将无法使用ssh协议。

来自存储库的推送通知

为了最小化推送和构建之间的延迟,配置远程存储库,使用Webhook通知Jenkins存储库的更改。必威国际有限公司参考你的库的webhook文档:

其他git存储库可以使用post-receive钩在远程存储库中通知Jenkins更改。必威国际有限公司在你的钩子/ post-receive文件,将git存储库>的

curl http://yourserver/git/notifyCommit?url=< Git库>的URL

这将扫描所有作业:

  • 启用Build Triggers > Poll SCM。不需要轮询计划。

  • 配置为在指定的URL上构建存储库

对于满足这些条件的作业,将触发轮询。如果轮询发现值得构建的更改,将触发构建。

这允许通知脚本对所有Jenkins任务保持相同。必威国际有限公司或者,如果在一个存储库主机应用程序(如Gitosis)下有多个存储库,则可以与所有存储库共享一个接收后挂钩脚本。最后,即使对于安全的Jenkins,这个URL也不需要身份验证,因为服务器不直接使用客户端发送的任何东西。必威国际有限公司在实际开始构建之前,它会轮询以验证是否有更改。

当notifyCommit成功时,返回被触发的项目列表。

使JGit

看看Git客户端插件文档有关启用JGIT的说明。启用后,JGIT可在Jenkins中获得。必威国际有限公司

全局配置

全局配置"style=

配置系统页面,Git插件提供以下选项:

Global Config user.name值

定义git从Jenkins提交更改时将分配的默认git用户名。例如必威国际有限公司janice examplesperson..这可以由个人项目覆盖自定义用户名/电子邮件地址扩大

全球用户配置。电子邮件的价值

定义默认的git用户e-mail,当git从Jenkins提交更改时将分配该e-mail。必威国际有限公司例如,janice.examplesperson@example.com.这可以由个人项目覆盖自定义用户名/电子邮件地址扩大

根据作者/提交人的电子邮件创建新帐户

在Jenkins中为变更日志中确定的提交者和作者创建新的用户帐户。必威国际有限公司新的用户帐户被添加到内部Jenkins数据库中。必威国际有限公司电子邮件地址用作帐户的id。

在更改中显示整个提交摘要

变化每个作业的页面会在git plugin 4.0之前截断更改摘要。随着git plugin 4.0的发布,默认值被更改为显示完整的更改摘要。希望恢复旧行为的管理员可以禁用此设置。

在作业输出中隐藏凭证使用情况

如果勾选此项,控制台日志将不会显示用于克隆存储库的凭据标识符。

禁用性能增强

如果JGit和命令行git都在代理上启用,那么git插件使用“git tool chooser”来选择一个首选的git实现。首选的git实现取决于存储库的大小以及作业所要求的git插件特性。如果存储库大小为不到JGit存储库大小阈值和作业的git特性都是在JGit中实现的,然后使用JGit。如果存储库大小为大于JGit存储库大小阈值或作业需要JGit中没有实现的git特性,则使用命令行git。

如果勾选此项,该插件将禁用基于存储库大小推荐git实现的特性。当性能改进特性中出现bug时,可以使用此开关。如果你启用了这个设置,请报告一个git插件问题,说明为什么你需要启用它。

在初始检出期间保留第二次取

如果选中,初始的签出步骤将不会避免第二次取回。在Git插件4.4之前的Git插件版本会在初始仓库检出期间执行两个获取操作。Git插件4.4在大多数情况下删除了第二个获取操作。启用此选项将恢复第二次获取操作。只有当冗余取取删除逻辑中存在错误时才需要此设置。如果你启用了这个设置,请报告一个git插件问题,说明为什么你需要启用它。

添加git标签动作到作业

如果选中,Git标记操作将添加到发生的任何构建中方框打勾了。在git插件4.5.0之前,总是添加git标签动作。Git插件4.5.0及更高版本不会在新构建中添加Git标签操作,除非管理员启用它。

git标签操作允许用户根据应用标签的构建中使用的git提交,将标签应用到工作空间中的git仓库。git插件可以将应用的标记推到任何其他位置。如果删除了工作区,则将丢失应用的标记。当使用自动将标记应用到集中存储库的集中存储库时,标记工作空间是有意义的。在代理工作空间中应用git标签并没有很多实际用途。

存储库浏览器

存储库浏览器"style=

Repository Browser将Jenkins中的“更改”视图中的链接添加到外部系统中,以便浏览这些更改的详细必威国际有限公司信息。“自动”选项尝试从“存储库URL”推断存储库浏览器,并可以检测GitHub、Bitbucket和GitLab的云版本。

库浏览器包括:

assembleaweb.

Assembla库浏览器"style=

git仓库托管的仓库浏览器Assembla.选项包括:

Assembla Git URL

提供此Assembla存储库的根URL。例如,https://app.assembla.com/spaces/git-plugin/git/source

鱼眼

鱼眼库浏览器"style=

git仓库托管的仓库浏览器Atlassian鱼眼.选项包括:

URL

提供此Fisheye存储库的根URL。例如,https://fisheye.example.com/browser/my-project.

窑库浏览器"style=

git仓库托管的仓库浏览器.选项包括:

URL

为这个窑库服务的根URL。例如,https://kiln.example.com/username/my-project

Microsoft Team Foundation Server/Visual Studio Team Services

微软库浏览器"style=

git仓库托管的仓库浏览器Azure DevOps.选项包括:

URL或名称

提供Azure DevOps存储库的根URL。例如,https://example.visualstudio.com/_git/my-project。

bitbucketweb

Bitbucket都库浏览器"style=

git仓库托管的仓库浏览器Bitbucket都.选项包括:

URL

Bitbucket存储库的根URL。例如,https://bitbucket.example.com/username/my-project

bitbucketserver

Bitbucket服务器存储库浏览器"style=

Bitbucket Server自带的git仓库浏览器。选项包括:

URL

Bitbucket存储库的根URL。例如,https://bitbucket-server:7990/username/my-project

cgit

CGit库浏览器"style=

git仓库托管的仓库浏览器cgit.选项包括:

URL

用于此CGIT存储库的根URL。例如,https://git.zx2c4.com/cgit/

Gitblit.

GitBlit库浏览器"style=

GitBlit根url

服务于此GitBlit存储库的根URL。例如https://gitblit.example.com/

Gitblit的项目名称

GitBlit项目的名称。例如,我的项目

githubweb

GitHub库浏览器"style=

git仓库托管的仓库浏览器GitHub.选项包括:

URL

这个GitHub存储库的根URL。例如,https://github.example.com/username/my-project

gitiles

Gitiles库浏览器"style=

git仓库托管的仓库浏览器Gitiles.选项包括:

gitiles根url

Gitiles存储库的根URL。例如,https://gerrit.googlesource.com/gitiles/

gitlab

GitLab库浏览器"style=

git仓库托管的仓库浏览器GitLab.选项包括:

URL

为这个GitLab存储库服务的根URL。例如,https://gitlab.example.com/username/my-project

版本

您使用的GitLab的主要和次要版本,例如12.6。如果不指定版本,则假定是GitLab的现代版本(>= 8.0)。例如,12.6

gitlist

Gitlist存储库浏览器"style=

git仓库托管的仓库浏览器Gitlist..选项包括:

URL

提供此GitList存储库的根URL。例如,https://gitlist.example.com/username/my-project

gitoriousweb

giitious于2015年被收购。这个浏览器是弃用

URL

为这个giitious存储库服务的根URL。例如,https://gitorious.org/username/my-project

Gitweb.

Gitweb存储库浏览器"style=

git仓库托管的仓库浏览器GitWeb.选项包括:

URL

用于此GitWeb存储库的根URL。例如,https://gitweb.example.com/username/my-project

高格斯

高格库浏览器"style=

git仓库托管的仓库浏览器高格.选项包括:

URL

为这个Gogs存储库服务的根URL。例如,https://gogs.example.com/username/my-project

phabricator

Phabricator存储库浏览器"style=

git仓库托管的仓库浏览器Phacility Phabricator.选项包括:

URL

服务于此Phabricator存储库的根URL。例如https://phabricator.example.com/

Phab中的存储库名称

Phabricator存储库的名称。例如,我的项目

redmineweb.

Redmine库浏览器"style=

git仓库托管的仓库浏览器redmine..选项包括:

URL

用于此redmine存储库的根URL。例如,https://redmine.example.com/username/projects/my-project/repository

rhodecode

RhodeCode库浏览器"style=

git仓库托管的仓库浏览器RhodeCode.选项包括:

URL

为RhodeCode存储库服务的根URL。例如,https://rhodecode.example.com/username/my-project.

藏库浏览器"style=

Stash现在被称为Bitbucket服务器.git仓库托管的仓库浏览器Bitbucket服务器.选项包括:

URL

提供此Stash存储库的根URL。例如,https://stash.example.com/username/my-project

viewgit

Viewgit库浏览器"style=

git仓库托管的仓库浏览器viewgit.选项包括:

ViewGit根url

提供此ViewGit存储库的根URL。例如,https://viewgit.example.com/

ViewGit中的项目名称

ViewGit项目名称。例如,我的项目

Git凭证绑定

git插件提供了一个绑定来支持经过身份验证的git操作HTTPHTTPS协议,即Git用户名和密码. 这个吉特plugin depends on the Credential Binding Plugin to support these bindings.

访问这一点Git用户名和密码绑定在一个管道工作,访问Git凭据绑定

Freestyle项目可以通过以下步骤使用git凭证绑定:

  1. 复选框使用机密文本或文件,添加Git用户名和密码绑定。

  2. 选择所需的凭据和Git工具名称。

Git-Username-and Password-Binding-Freestyle-project"style=

使用了两个变量绑定,GIT_USERNAMEGIT_PASSWORD,将用户名和密码传递给Freestyle作业中的shell、batch和powershell步骤。变量绑定即使JGitJGit与Apache HTTP客户端正在使用git实现。

扩展

扩展为不同的用途添加新的行为或修改现有插件行为。扩展可以帮助用户更精确地调整插件以满足他们的需求。

扩展包括:

克隆扩展

克隆扩展修改将远程更改检索到代理工作空间的git操作。扩展可以调整检索的历史记录数量、允许检索运行的时间以及其他检索细节。

先进的克隆行为

先进的克隆行为"style=

高级克隆行为修改git克隆git获取命令。他们控制:

  • 历史检索宽度(refspecs)

  • 历史检索深度(浅克隆)

  • 磁盘空间使用(参考存储库)

  • 命令执行时间(timeout)

  • 标签检索

高级克隆行为包括:

荣誉反射初始克隆

使用为存储库定义的refspec执行初始克隆。当您只需要访问refspec指定的引用时,这可以节省时间、数据传输和磁盘空间。如果没有启用,则插件默认refspec包括所有远程分支。

浅克隆

通过从被请求分支的尖端请求有限数量的提交来执行浅克隆。Git不会下载项目的完整历史记录。当您只想访问最新版本的存储库时,这可以节省时间和磁盘空间。

浅克隆深度

将浅克隆深度设置为指定的提交数量。Git只会下载深度从远程存储库提交,节省时间和磁盘空间。

克隆时要使用的引用repo的路径

指定包含Git在克隆操作期间的引用的存储库的文件夹。如果代理程序文件夹不可用,则将忽略此选项。

克隆和获取操作的超时时间(分钟)

指定克隆和获取操作的超时时间(以分钟为单位)。

获取标签

取消选中此选项以执行不带标记的克隆,当您只想访问refspec指定的内容而不考虑任何存储库标记时,可以节省时间和磁盘空间。

修剪陈旧遥控追踪分支

修剪陈旧遥控追踪分支"style=

如果远程跟踪分支不再存在,则从本地工作空间中删除它们。看到git远程修剪git-fetch-prune为更多的细节。

删除过期的标签

删除过期的标签"style=

如果标记在远程上不再存在,则在获取之前从本地工作区中删除它们。如果不删除陈旧的标记,删除远程标记将不会删除工作空间中的本地标记。如果本地标记已经存在于工作区中,git会正确地拒绝再次创建该标记。修剪陈旧的标记允许本地工作区创建与从远程删除的标记同名的标记。

检查扩展

结帐扩展修改了从代理上的Git存储库中将文件放置在工作区中的GIT操作。扩展可以调整Checkout操作的最大持续时间,Git子模块的使用和行为,光盘上的工作空间的位置等。

先进的检验行为

先进的检验行为"style=

高级签出行为修改git checkout命令。高级检出行为包括

签出操作超时(分钟)

为签出指定一个超时(以分钟为单位)。如果超过超时,则停止签出。签出超时通常只在速度较慢的文件系统或大型存储库中需要。

先进的子模块的行为

先进的子模块的行为"style=

高级子模块行为修改git子模块命令。他们控制:

  • 历史检索深度(浅克隆)

  • 磁盘空间使用(参考存储库)

  • 证书使用

  • 命令执行时间(timeout)

  • 用于获取子模块的并发线程

先进的子模块包括:

禁用子模块处理

忽略存储库中的子模块。

递归更新子

递归地检索所有子模块。如果没有此选项,包含其他子模块的子模块将忽略所包含的子模块。

将跟踪子模块更新到分支尖端

在.gitmodules中检索配置的分支的尖端。

使用来自父存储库的默认远程的凭据

使用来自父项目的默认远程的凭据。默认情况下,子模块更新不使用凭据。启用此扩展将为每个子模块存储库提供父存储库凭据。子模块凭据要求子模块存储库必须接受与父项目相同的凭据。如果父项目是通过https克隆的,那么经过身份验证的子模块引用也必须使用https。如果父项目是用ssh克隆的,那么经过身份验证的子模块引用也必须使用ssh。

在子模块更新期间要使用的引用repo的路径

文件夹中包含git将在子模块克隆操作期间作为参考使用的存储库。如果运行构建的代理上的文件夹不可用,则此选项将被忽略。参考存储库可以包含多个子项目。有关更多细节,请参阅组合存储库一节。

子模块操作的超时时间(分钟)

为子模块操作指定超时(以分钟为单位)。此选项覆盖默认超时。

更新子模块时要使用的线程数

更新子模块时使用的并行进程数。默认情况下,对子模块更新使用单个线程

浅克隆

执行子模块的浅克隆。Git不会下载项目的完整历史记录,这节省了时间和磁盘空间。

浅克隆深度

设置子模块的浅克隆深度。Git只会下载项目的最新历史记录,从而节省时间和磁盘空间。

结帐到子目录

结帐到子目录"style=

签出到工作区的子目录,而不是使用工作区根目录。

这个扩展应该在Jenkins Pi必威国际有限公司peline中使用(声明式或脚本式)。必威国际有限公司Jenkins Pipeline已经提供了用于检出到子目录的标准技术。使用wsdir在Je必威国际有限公司nkins管道而不是这个扩展。

回购的本地子目录

GIT存储库结帐的本地目录(相对于工作空间根)的名称。如果留空,则将使用工作区根目录。

结帐到特定的当地分行

结帐到特定的当地分行"style=

分店名称

如果给出,则在指定的分支上签出要构建的版本作为HEAD。如果value为空字符串或"**",则分支名称从没有起源的远程分支计算。在这种情况下,一个远程分支“origin/master”将被签出到一个名为“master”的本地分支,而一个远程分支“origin/develop/new-feature”将被签出到一个名为“develop/new-feature”的本地分支。如果签出了一个特定的版本而不是分支HEAD,那么'detached'将被用作本地分支名称。

消灭仓库,强迫克隆

消灭仓库,强迫克隆"style=

在构建和签出之前删除工作区的内容。删除工作区中的git存储库,并强制执行完整的克隆。

结帐后清理

结帐后清理"style=

干净的工作空间通过删除所有未跟踪的文件和目录,包括在.gitignore.重置所有跟踪文件到其版本控制状态。确保工作区处于与在新工作区中执行克隆和签出相同的状态。降低当前构建受先前构建生成的文件影响的风险。不删除工作区外的文件(如临时文件或缓存文件)。不能删除?中的文件.工作区的存储库。

删除未跟踪的嵌套存储库

删除包含.子目录,如果启用此选项。这是在命令行git asgit清洁-xffd.指的是Git清洁手册页面想要查询更多的信息。

清洁前结账

清洁前结账"style=

干净的工作空间之前每次签出都会删除所有未跟踪的文件和目录,包括在.gitignore中指定的文件和目录。将所有跟踪文件重置为其版本控制状态。确保工作区处于与在新工作区中执行克隆和签出相同的状态。降低当前生成将受以前生成的文件影响的风险。不删除工作区外的文件(如临时文件或缓存文件)。不删除中的文件.工作区的存储库。

删除未跟踪的嵌套存储库

删除包含.子目录,如果启用此选项。这是在命令行git asgit清洁-xffd.指的是Git清洁手册页面想要查询更多的信息。

稀疏的结帐路径

稀疏的结帐路径"style=

指定要稀疏签出的路径。这可以用于节省空间(考虑参考存储库)。确保使用最新版本的Git,至少高于1.7.10。

多个稀疏检出路径值可以添加到单个作业中。

路径

要包含在签出中的文件或目录

Git LFS pull后签出

Git LFS pull后签出"style=

启用Git大文件支持通过在签出完成后提取大文件来获取工作区。要求已经安装了执行LFS签出的控制器和每个代理git lfs

更新日志扩展

该插件可以计算两个版本之间的源代码差异。变更日志扩展适应变更日志计算为不同的情况。

根据特定的分支计算变更日志

根据特定的分支计算变更日志"style=

“针对特定分支计算变更日志”使用指定的分支来计算变更日志,而不是基于以前的构建计算它。这个扩展可以用于计算与已知的基分支相关的更改,特别是在没有“拉请求”概念的环境中。

存储库名称

包含分支的存储库的名称,例如“origin”。

分行名称

命名存储库中用于变更日志计算的分支的名称。

在变更日志中使用提交作者

在变更日志中使用提交作者"style=

默认行为是在构建更改集中使用Git提交的“Committer”值。如果选择此选项,则使用git commit的“Author”值。

标签的扩展

标签扩展允许插件在当前工作区中应用标签。

为每个构建创建一个标记

为每个构建创建一个标记"style=

在工作空间中为每个构建创建一个标记,以明确地标记所构建的提交。您可以将其与Git发布者结合使用,将标记推送到远程存储库。

构建初始化扩展

git插件可以基于许多不同的条件启动构建。构建启动扩展控制启动构建的条件。他们可以忽略更改通知,或者在轮询时强制对提交进行更深入的评估

不在提交通知上触发生成

提交通知时不触发构建"style=

如果勾选此项,那么在访问notifyCommit URL时,无论该存储库是否匹配,都会忽略该存储库。

使用工作区强制轮询

使用工作区强制轮询"style=

git插件远程轮询使用ls-remote当配置为单个分支时(没有通配符!)当启用此扩展时,将从工作区的克隆副本执行轮询,而不是使用ls-remote

如果选择此选项,轮询将使用工作区而不是使用ls-remote

默认情况下,插件通过在Jenkins控制器上执行一个轮询进程或线程来轮询。必威国际有限公司如果Jenki必威国际有限公司ns控制器没有安装git,管理员可以使JGit使用纯Java git实现进行轮询。此外,管理员可能需要禁用命令行git防止在Jenkins控制器上使用命令行git。必威国际有限公司

轮询忽略来自某些用户的提交

轮询忽略来自某些用户的提交"style=

这些选项允许您在构建之前对特定的分支执行合并。例如,您可以指定要构建的集成分支,并将其合并到master。在这个场景中,对于集成的每一个更改,Jenkins都将执行与主分支的合并,如果合并成功,则尝试执行构必威国际有限公司建。然后,如果选择了Git push后构建操作,它可能会将合并推回远程存储库。

排除用户

如果set和Jenki必威国际有限公司ns被配置为轮询更改,当确定是否应该触发构建时,Jenkins将忽略该列表中用户提交的任何修订。这可以用来排除由构建本身完成的提交,以免触发另一个构建,假设构建服务器使用不同的SCM用户提交更改。使用这种行为阻止了更快git ls-remote轮询机制。它强制轮询需要一个工作区,就好像您选择了使用工作区强制轮询扩大

每个排除使用精确的字符串比较,必须用新行分隔。只有当用户名与列表中的名称完全匹配时,才会被排除在外。

轮询忽略某些路径中的提交

轮询忽略某些路径中的提交"style=

如果set和Jenki必威国际有限公司ns被配置为轮询更改,当确定是否需要触发构建时,Jenkins将关注包含和/或排除的文件和/或文件夹。

使用此行为将排除更快的远程轮询机制,迫使轮询需要一个工作区,因此有时会触发不想要的构建,就好像您选择了使用工作区强制轮询扩展。这可以用来排除由构建本身完成的提交,以免触发另一个构建,假设构建服务器使用不同的SCM用户提交更改。使用此行为将排除更快的git ls-remote轮询机制,迫使轮询需要一个工作区,就像您选择了使用工作区强制轮询扩展。

包括区域

每个包含使用Java正则表达式模式匹配,并且必须用新行分隔。空列表意味着包含一切。

被排除在外的地区

每个排除使用java正则表达式模式匹配,并且必须用新行分隔。空列表不排除任何内容。

轮询忽略对某些消息的提交

轮询忽略对某些消息的提交"style=

排除消息

如果set和Jenki必威国际有限公司ns被设置为轮询更改,那么当确定是否需要触发构建时,Jenkins将忽略任何与正则表达式模式匹配的消息所提交的修订。这可以用来排除由构建本身完成的提交,以免触发另一个构建,假设构建服务器使用不同的消息提交更改。您可以使用嵌入式标志表达式创建更复杂的模式。

选择建造什么的策略

选择建造什么的策略"style=

当您有兴趣使用作业来构建多个分支时,可以选择Jenkins如何选择要构建的分支以及应构建的顺序。必威国际有限公司

许多其他插件使用Jenkins中的这个扩展点来控必威国际有限公司制工作,因为它构建特定的提交。当您激活这些插件时,您可能会看到它们正在安装自定义构建策略。

祖先
最大提交年龄

要构建的提交的最大时间(以天为单位)。它使用GIT_COMMITTER_DATE,而不是GIT_AUTHOR_DATE

提交的祖先

如果提供了一个祖先提交(SHA-1),则只会构建历史中具有此提交的分支。

默认的

构建与分支名称模式匹配的所有分支。

构建所有分支,除了匹配上面配置的分支说明符的分支。这是有用的,例如,当你有工作构建你的主分支和各种发布分支,而你想要第二个工作构建所有新特性分支。例如,与这些模式不匹配的分支在每次改变时都没有重复构建主分支和发布分支。

合并的扩展

git插件可以选择将其他分支的更改合并到代理工作区的当前分支中。合并扩展控制合并的源分支和应用于合并的选项。

在构建之前合并

在构建之前合并"style=

这些选项允许您在构建之前对特定的分支执行合并。例如,您可以指定要构建的集成分支,并将其合并到master。在这个场景中,对于集成的每一个更改,Jenkins都将执行与主分支的合并,如果合并成功,则尝试执行构必威国际有限公司建。然后它可能会将合并推回远程存储库,如果Git Publisher的后构建操作被选中。

存储库名称

包含分支的存储库的名称,例如原点。如果留空,则会默认为配置的第一个存储库的名称。

合并到的分支

要合并到的命名存储库中的分支的名称,例如master。

合并策略

合并战略选择。选择包括:

  • 默认的

  • 解决

  • 递归

  • 章鱼

  • 我们的

  • 子树

  • recursive_theirs

快进模式
  • - - - ff:快进,它在需要时优雅地返回到合并提交

  • -ff-only:快进没有任何回力

  • ——no-ff总是合并提交,即使允许快速前进

自定义用户名/电子邮件地址

自定义用户名/电子邮件地址"style=

用户名

定义用户名值,git将分配给在工作空间中提交的新提交。如果给定,则表示环境变量GIT_COMMITTER_NAMEGIT_AUTHOR_NAME用于构建和覆盖全局设置中的值。

user.email

定义用户email值,git将分配给在工作区的新提交。如果给定,则表示环境变量GIT_COMMITTER_EMAILGIT_AUTHOR_EMAIL用于构建和覆盖全局设置中的值。

弃用的扩展

〇自定义SCM名称弃用

此SCM的唯一名称。在Multi SCM插件中使用Git时需要。管道是在单个作业中从多个存储库检出的健壮且功能丰富的方法。

子模块组合子-删除

多年前创建了一个实验,试图在Jenkins工作中创建子模区的组合。必威国际有限公司实验从未使用过自由式项目或其他遗留项目,如多配置项目。它在管道中可见,配置为代码和Jobdsl。

实验的实施已被取消。可信性测试和其他配置工具更适合评估子模块组合。

没有已知的子模块组合子的使用,也没有针对子模块组合子报告的开放Jira问题。那些使用子模块组合器的人应该使用4.6.0之前的git插件版本。

子模块组合子将忽略用户为git提供的下列参数的值检出供应链管理

doGenerateSubmoduleConfigurations

一个现在总是被设置为的布尔值.git插件不再评估子模块配置。

submoduleCfg

现在始终为空的子模块名称和分支列表。git插件不再评估子模块配置。

以前的管道语法看起来像这样:

付款([$GitSCM分支机构: [[的名字]],doGenerateSubmoduleConfigurations扩展: [],submoduleCfg: [],userRemoteConfigs: [[urlhttps://github.com/必威国际有限公司jenkinsci/git-plugin]]])

当前的管道语法看起来像这样:

付款([$GitSCM分支机构: [[的名字]],扩展: [],userRemoteConfigs: [[urlhttps://github.com/必威国际有限公司jenkinsci/git-plugin]]])

环境变量

git插件在多个上下文中为环境变量赋值。在Freestyle、Pipeline、Multibranch Pipeline和Organization Folder项目中分配环境变量。

分支变量

GIT_BRANCH

正在构建的分支的名称,包括远程名称,如来源/主

git_local_branch

正在构建的没有远程名称的分支的名称,如

提交的变量

GIT_COMMIT

此构建中使用的提交的SHA-1

GIT_PREVIOUS_COMMIT

在此项目的前一个生成中使用的提交的SHA-1

GIT_PREVIOUS_SUCCESSFUL_COMMIT

在该项目的最新成功构建中使用的提交的SHA-1

系统配置变量

GIT_URL

该工作区中第一个git存储库的远程URL

GIT_URL_n

这个工作空间中额外的git存储库的远程URL(如果有的话)

GIT_AUTHOR_EMAIL

作者将用于的电子邮件地址此工作区中的新提交

GIT_AUTHOR_NAME

作者姓名将用于此工作区中的新提交

GIT_COMMITTER_EMAIL

提交者的电子邮件地址,将用于此工作区中的新提交

GIT_COMMITTER_NAME

用于的提交者名称此工作区中的新提交

属性

一些git插件设置只能通过在Jenkins启动时设置的命令行属性来控制。必威国际有限公司

默认超时

默认的git超时值(以分钟为单位)可以被org.必威国际有限公司jenkinsci.plugins.gitclient.Git.timeOut属性(见必威国际有限公司詹金斯- 11286).应该在控制器和所有代理上设置该属性以使其生效(参见必威国际有限公司詹金斯- 22547).

命令行git是git插件和git客户端插件中的参考git实现。命令行git提供了最多的功能,也是最稳定的实现。有些安装可能不希望安装命令行git,而可能希望禁用命令行git实现。管理员可以使用该属性禁用命令行gitorg.必威国际有限公司jenkinsci.plugins.gitclient.Git.useCLI = false

Git出版商

Jenk必威国际有限公司ins git插件提供了一个“git发布者”作为构建后操作。git发布者可以将提交或标记从Freestyle项目的工作空间推送到远程存储库。

git的发布者是只有自由泳项目。它是不可用适用于管道、多分支管道、组织文件夹或Freestyle以外的任何其他工作类型。

Git出版商的选择

git发布者的行为是由选项控制的,这些选项可以配置为Jenkins作业的一部分。必威国际有限公司选项包括;

只有构建成功才推

如果构建成功,则只将更改从工作空间推到远程存储库。如果构建状态不稳定、失败或已取消,则不会推送来自工作区的更改。

合并的结果

如果预构建合并是通过合并扩展,则启用此复选框将把合并推到远程存储库。

力推动

Git拒绝用不同的提交替换远程提交。这可以防止意外覆盖远程存储库上的新提交。然而,有时覆盖远程存储库上的提交是可以接受的,甚至是需要的。如果来自本地工作区的提交应该覆盖远程存储库上的提交,请启用此选项。它将请求远程存储库销毁历史记录,并用工作区中的历史记录替换它。

Git发布者标签选项

git发布者可以将标签从工作区推送到远程存储库。本节中的选项将允许插件创建一个新标签。选项也将允许插件更新现有的标签,尽管git文档强烈建议对更新标签。

标签将

要从本地工作空间推送到远程存储库的标记的名称。这个名字可能包括必威国际有限公司詹金斯环境变量或者可能是一个固定的字符串。例如,push的标签可能是BUILD_TAG美元标记- BUILD_NUMBER美元构建——BUILD_NUMBER-from - NODE_NAME美元,或a-very-specific-string-that-will-be-used-once

标签信息

如果选择了创建标记或更新标记的选项,则此消息将与创建的标记相关联。该消息将展开对的引用必威国际有限公司詹金斯环境变量.例如,消息在$NODE_NAME上构建标记为$BUILD_NUMBER的代码将使用该信息构建1标记在特殊代理上如果作业的构建1在名为“special-agent”的代理上运行。

创建新标签

在工作区中创建一个新标记。如果标签已经存在,git发布者将会让作业失败。

更新新的标签

修改工作区中的现有标记,以便它指向最新的提交。许多GIT存储库托管服务将拒绝推动标记的尝试,该标记已被修改为指向不同的提交而不是其原始提交。指力推动,该选项可能强制远程存储库接受已修改的标记。的git文档强烈建议不要更新标签

远程名称标签

Git使用'remote name'作为一个短字符串替换远程存储库的完整URL。这个选项定义了哪个远程应该接收推送。这通常是起源,尽管它可以是插件执行签出时定义的任何远程名称。

Git Publisher分支选项

git发布者可以将分支从工作空间推到远程存储库。本节中的选项将允许插件将本地分支的内容推送到远程存储库。

分支推动

远程分支的名称将从代理工作区接收最新的提交。这通常是用于结账时使用的分支

目标远程名称

远程的短名称将从代理工作区接收最新的提交。通常这是起源.它需要是在代理工作空间中定义的简短名称,可以通过初始签出,也可以通过稍后的配置。

变基之前推

一些Jen必威国际有限公司kins作业可能无法将更改推送到远程存储库,因为远程存储库在作业开始后收到了新的提交。这种情况可能发生在收到许多提交的项目或具有长期运行作业的项目中。的变基之前推选项从远程存储库获取最近的提交,对最近的提交应用本地更改,然后推送结果。该插件使用git变基在最近的远程更改上应用本地更改。

因为变基之前推是否在代理工作区中修改提交工作完成后,它正在创建提交的配置没有被詹金斯的任何工作评估过必威国际有限公司. 这个commits in the local workspace have been evaluated by the job. The most recent commits from the remote repository have not been evaluated by the job. Users may find that the risk of pushing an untested configuration is less than the risk of delaying the visibility of the changes which have been evaluated by the job.

结合存储库

一个引用存储库可以包含来自多个存储库的提交。例如,如果一个存储库名为包括对子模块的引用儿童-1儿童-2,可以使用命令从所有三个存储库创建引用存储库:

mkdir multirepository-cache美元。吉特$ cd multirepository-cache.git $ git init --bare $ git remote add parent https://github.com/jenkinsci/git-plugin $ git remote add child-1 https://github.com/jenkinsci/git-client-plugin $ git remote add child-2 https://github.com/jenkinsci/platformlabeler-plugin $ git fetch --all

这些命令使用所有三个存储库的当前提交创建一个单独的裸存储库。如果在高级克隆选项中使用了该引用存储库克隆参考存储库,它将减少父存储库的数据传输和磁盘使用。如果在子模块选项中使用了该引用存储库克隆参考存储库,它将减少子模块存储库的数据传输和磁盘使用。

错误报告

为插件做贡献

为插件做出贡献对贡献的指导方针。指插件开发优先级查看开发主题的优先级列表。

删除Git Plugin BuildsByBranch BuildData脚本

git插件有问题(必威国际有限公司Jenkins-19022),有时会导致在作业的构建历史中过度使用内存和磁盘。出现这个问题的原因是,在某些情况下,git插件会将之前构建的git构建数据复制到最近的构建中,即使在最近的构建中没有使用之前构建的git构建数据。当作业保留了大量的历史构建或作业在其历史期间构建了广泛的提交时,这个问题尤其具有挑战性。

多次试图在不破坏兼容性的情况下解决核心问题,但都失败了。下面提供了一个工作区,它将从构建记录中删除git构建数据。解决方案是一个系统groovy脚本,需要从Jenkins管理员的脚本控制台(如必威国际有限公司https://必威国际有限公司jenkins.example.com/script).运行系统groovy脚本需要管理员权限。

这个脚本删除了BuildsByBranch的静态列表,它是为Git Plugin每次构建存储的。

(); hudson.plugins.git.Revision r = action.getLastBuiltRevision(); if (r != null) { for (branch in r.getBranches()) { action.buildsByBranchName.put(branch.getName(), action.lastBuild) } } build.actions.remove(action) build.actions.add(action) build.save(); counter++; } } if (job instanceof MatrixProject) { def runcounter = 0; for (run in build.getRuns()) { gitActions = run.getActions(hudson.plugins.git.util.BuildData.class) if (gitActions != null) { for (action in gitActions) { action.buildsByBranchName = new HashMap(); hudson.plugins.git.Revision r = action.getLastBuiltRevision(); if (r != null) { for (branch in r.getBranches()) { action.buildsByBranchName.put(branch.getName(), action.lastBuild) } } run.actions.remove(action) run.actions.add(action) run.save(); runcounter++; } } } if (runcounter > 0) { println(" -->> cleaned: " + runcounter + " runs"); } } } if (counter > 0) { println("-- cleaned: " + counter + " builds"); } }">
进口hudson.matrix。*进口hudson.model。*hudsonInstancehudson.model.Hudson实例jobnames.hudsonInstanceallItems getJobNames ()[](名称jobname) {allItems+hudsonInstancegetItemByFullName(名字)}//迭代所有作业,找到有一个hudson.plugins.git.util.builddata的那些//作为一个行动。////然后我们通过删除无用的数组action.buildsByBranchName来清理它//(工作allItems) {println工作:+工作的名字);def计数器0(建工作getBuilds ()) {//一个构建可以有多个BuildData操作//因为我们可以使用多重SCM插件。defgitActions构建getActions (hudson.plugins.git.util.builddata.类)如果(gitActions! =){(行动gitActions){行动buildsByBranchNameHashMap <字符串构建>();hudson.plugins.git.Revisionr行动getlastbuiltrevision();如果(右! =){(分支rgetBranches()){行动buildsByBranchName把(分支getName(),行动lastBuild)}} build行动删除(行动)行动添加(行动)save ();计数器++;} }如果(工作运算符MatrixProject){defruncounter0(运行构建getRuns ()) {gitActions运行getActions (hudson.plugins.git.util.builddata.类)如果(gitActions! =){(行动gitActions){行动buildsByBranchNameHashMap <字符串构建>();hudson.plugins.git.Revisionr行动getlastbuiltrevision();如果(右! =){(分支rgetBranches()){行动buildsByBranchName把(分支getName(),行动lastBuild)}}运行行动删除(行动)行动添加(行动)save ();runcounter++;}}}如果(runcounter>0){println-  >>清洁:+runcounter+);}}}如果(柜台>0){println——清洁:+计数器+构建);} }