如何使用jenkins git插件从是否包含源代码的分支构建

如何使用jenkins git插件从是否包含源代码的分支构建,git,jenkins,git-branch,Git,Jenkins,Git Branch,从git在master jenkins上构建时,获取并使用origin/master。当从git在分支上构建时,jenkins获取和使用mybranch而不是origin/mybranch,并且不接受更改 我将分支说明符切换为使用origin/mybranch,它似乎可以工作。这是处理事情的标准方式,还是我遗漏了一种更明显的方式?我不想增加不必要的复杂性 请告诉我jenkins是否应该使用origin/branchname而不是branchname来为其分支构建字段 谢谢 Peter检查当前的.

从git在master jenkins上构建时,获取并使用origin/master。当从git在分支上构建时,jenkins获取和使用mybranch而不是origin/mybranch,并且不接受更改

我将分支说明符切换为使用origin/mybranch,它似乎可以工作。这是处理事情的标准方式,还是我遗漏了一种更明显的方式?我不想增加不必要的复杂性

请告诉我jenkins是否应该使用origin/branchname而不是branchname来为其分支构建字段

谢谢


Peter

检查当前的.git/config,您将看到您的“源代码”以及主代码与源代码的关系已经指定。不会指定其他分支,因此插件无法构造url。要添加更多分支

[remote "origin"]
        url = ssh://myserv/srv/git/proj.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "im_a_branch"]
        remote = origin
        merge = refs/heads/im_a_branch_remote_branch_name

这将使您能够在Jenkins中的Branchs to build字段中输入分支名称。这可能是过度使用和额外维护。只需输入origin/branchname。

如果您只有一个远程存储库(名为
origin
),那么输入
branchname
应该与输入
origin/branchname
同义。如果您有多个存储库,并且只需输入
branchname
,那么它应该检查该分支的所有远程存储库

请注意,如果您在Jenkins workspace repository中手动创建了一个名为
branchname
的分支,那么它可能会有一些奇怪的行为,您可能需要删除该分支或重新创建工作区。通常,您不应该手动操作工作区存储库中的分支


它不应该试图使用本地(非远程)分支进行轮询或获取更改。如果你看到它这样做,那么它肯定是一个bug。您应该尝试将jenkins实例和git插件升级到最新版本,如果仍然看到问题,您应该(同时您可以使用
origin/branchname
作为解决方法)。但是,对于最新版本,只需输入
branchname
就可以了,因此如果您继续看到这个问题,我建议您重新创建工作区,以尝试获得一个干净的存储库。

Jenkins创建存储库的初始克隆。这并不能解决问题,对。这对詹金斯来说不是很有用,但总的来说,知道这一点很好。我可以修改主存储库,也许我的用户也会更高兴。我希望我们的构建能够拾取所有Remote/origin/**分支,除了Remote/origin/GEcode和remotes/origin/puecode,它们离主存储库太远了,但是这些分支上的更改会导致jenkins拾取它们……我如何忽略它们?