从Jenkins移除git缓存

oct*_*ian 6 git jenkins

我正在尝试从Maven创建发行版,但是git tag already exists即使我已从本地计算机和远程存储库中删除了该标签,也遇到了错误。

这个问题有相同的问题,但对于Bamboo而不是Jenkins。解决方案是删除Bamboo中缓存Git配置的文件:

<BAMBOO_HOME>/xml-data/build-dir/_git-repositories-cache

我如何用詹金斯做同样的事情?

Sea*_*ean 10

今天/var/lib/jenkins/caches遇到了同样的事情,发现 git 存储库缓存在我的 master 上,如果您有很多git 存储库,您将需要尝试找到您的特定存储库,因为它们是按哈希而不是按名称列出的。

[jenkins@jenkinsmaster caches]$ pwd
/var/lib/jenkins/caches
[jenkins@jenkinsmaster caches]$ ls -als
...
4 drwxr-xr-x.  3 jenkins jenkins 4096 Nov  8 09:10 git-bbcfdeb24494d83c13621c40b3b14ffd
4 drwxr-xr-x.  2 jenkins jenkins 4096 Nov  8 09:10 git-bbcfdeb24494d83c13621c40b3b14ffd@tmp
...
Run Code Online (Sandbox Code Playgroud)

一旦我找到了正确的(通过进入每个并运行git tag -l查找我不需要的标签。我只是从该目录中删除了git-<hash>git-<hash>@tmp文件夹。重新运行我的工作,源再次完全检出并且没有不需要的标签.:^)

请注意,如下所述,您可以在 Jenkins 脚本控制台中运行:
println('git-'+hudson.Util.getDigestOf('remote'))其中remote是 git remote 的 URL,以识别正确的缓存。

  • 清理整个 /var/lib/jenkins/caches/* 是否安全? (5认同)
  • 如果您有权访问脚本控制台,则可以使用以下命令找到缓存目录的名称:`println('git-'+hudson.Util.getDigestOf(remote))` 其中 remote 是您所在的实际 URL/远程字符串用于 git repo (2认同)
  • 我删除了 /var/lib/jenkins/caches/* 没有任何问题 (2认同)