我正在与Jenkins CI合作,并且正在尝试正确配置我的作业以使用git。
我为我的一个作业安装并配置了git插件。当我构建作业时,我希望它为我指定的分支提取最新的更改,然后继续构建过程的其余部分(例如,单元测试等)。
当我查看控制台输出时,我看到了
> git fetch --tags --progress ssh://gerrit@git-dev/Util +refs/heads/*:refs/remotes/origin/*
> git rev-parse origin/some_branch^{commit}
Checking out Revision <latest_SHA1> (origin/some_branch)
> git config core.sparsecheckout
> git checkout -f <latest_SHA1>
> git rev-list <latest_SHA1>
我看到插件提取并检出了正确的提交哈希值,但是当测试运行时,似乎repo根本没有更新。 如果我进入Jenkins的存储库,我会看到最新的更改从未被删除过。
在尝试构建之前不应该拉动吗?
我的Jenkins机器上安装了git 1.8.5,这是推荐的版本。 https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
在检查了其他类似的声音问题之后,他们的答案对我的问题没有帮助。
答案 0 :(得分:28)
让我了解工作空间未被清理,使用的场景:
源代码管理 - &gt;附加行为 - &gt;结账后清洁
add_mutually_exclusive_group
答案 1 :(得分:6)
我相信Jenkins会将这些变化拉出来并构建在自己的tmp目录中。因此,虽然Jenkins正在其自己的沙箱中正确构建新代码,但您的存储库目录并未获得更新。
我的解决方案是添加一个&#34; git pull&#34;像我这样进入构建过程:
当新的提交传递给我的GitHub回购时:
1.构建我的项目
如果成功,请执行以下构建后步骤:
1.执行Shell:
cd /your/repo/directory/
git pull
你可以明显地修改&#34; git pull&#34;命令做任何你需要做的事情,如果“拉”&#39;不适合你。
答案 2 :(得分:0)
答案 3 :(得分:0)
尝试使用以下格式插入分支路径:
refs/remotes/<remoteRepoName>/<branchName>
Tracks/checks out the specified branch.
E.g. refs/remotes/origin/master
答案 4 :(得分:0)
只需勾选图像中的复选框即可。 This Tab saved me the Head aches
答案 5 :(得分:0)