【发布时间】:2014-03-21 00:22:29
【问题描述】:
尝试在 GitHub 拉取请求上运行 Jenkins 测试后,我遇到了以下错误:
error: some local refs could not be updated; try running
00:07:44 'git remote prune git@github.com:myrepo/myrepo.git' to remove any old, conflicting branches
运行以下任何或所有操作都不会修复它:
git remote prune git@github.com:myrepo/myrepo.gitgit remote prune origingit fetch origin -t --prunegit gc --prune=now
Jenkins 正在其工作区中运行此命令:
git fetch --tags --progress origin +refs/pull/*:refs/remotes/origin/pr/*
这告诉我遥控器上有一个错误的参考:
git fetch --tags --progress origin +refs/pul
l/*:refs/remotes/origin/pr/*
Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.
error: 'refs/remotes/origin/pr/2730' exists; cannot create 'refs/remotes/origin/pr/2730/head'
From github.com:myrepo/myrepo
! [new branch] refs/pull/2730/head -> origin/pr/2730/head (unable to update local ref)
error: some local refs could not be updated; try running
'git remote prune origin' to remove any old, conflicting branches
在 Jenkins 上以 Won't Fix 关闭了一张关于类似错误的票:JENKINS-19591
我已经尝试删除远程引用:
git push origin :refs/origin/pr/2730/head
Warning: Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts.
remote: warning: Deleting a non-existent ref.
To git@github.com:myrepo/myrepo.git
- [deleted] refs/origin/pr/2730/head
之后我仍然遇到同样的错误:-(
如何修复远程拉取请求参考?
检查.git/logs/refs/remotes/origin/pr/后,我发现它抱怨的分支是唯一一个正常文件:
$ ls -ld .git/logs/refs/remotes/origin/pr/273*
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/273
-rw-rw-r-- 1 jenkins jenkins 248 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2730
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2731
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2732
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2733
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2734
drwxrwxr-x 2 jenkins jenkins 4096 Mar 21 08:05 .git/logs/refs/remotes/origin/pr/2735
$ file .git/logs/refs/remotes/origin/pr/273*
.git/logs/refs/remotes/origin/pr/273: directory
.git/logs/refs/remotes/origin/pr/2730: ASCII text
.git/logs/refs/remotes/origin/pr/2731: directory
.git/logs/refs/remotes/origin/pr/2732: directory
.git/logs/refs/remotes/origin/pr/2733: directory
.git/logs/refs/remotes/origin/pr/2734: directory
.git/logs/refs/remotes/origin/pr/2735: directory
.git/logs/refs/remotes/origin/pr/2736: directory
.git/logs/refs/remotes/origin/pr/2737: directory
.git/logs/refs/remotes/origin/pr/2738: directory
.git/logs/refs/remotes/origin/pr/2739: directory
$ find .git/logs/refs/remotes/origin/pr/ -maxdepth 1 -type f
.git/logs/refs/remotes/origin/pr/2730
$ cat .git/logs/refs/remotes/origin/pr/2730
0000000000000000000000000000000000000000 0c960f4b8bf30109536ec1b7a1d54a636e21fd87 Jenkins <ops@tangogroup.com> 1395389111 +0000 fetch --tags --progress git@github.com:TangoGroup/program_creator.git +refs/heads/*:refs/remotes/origin/*: storing head
内容看起来有点奇怪……不知道是不是应该是这样的……
【问题讨论】: