我有一个定期的git同步脚本,该脚本从位存储桶云运行到我们的本地git存储库。
简而言之,它执行以下操作:
git clone --mirror ssh://source.git
git show-ref | cut -d ' ' -f2 | grep 'pull-request' | xargs -r -L1 git update-ref -d
git push --mirror ssh://target.git
此序列克隆了源存储库,清除了所有提取请求引用,并将其推送到目标存储库。几个月来它一直没有问题,但是今天我遇到了以下错误:
远程:您正在尝试更新保留给它的引用
Bitbucket的请求请求功能。 Bitbucket管理这些裁判
自动,并且它们可能不会被用户更新。远程:
拒绝的裁判:远程:refs / pull-requests / 1 /来自
远程:refs / pull-requests / 1 /合并远程:! [远程
rejected] refs / pull-requests / 1 / from(预接收钩被拒绝)!
[远程拒绝] refs / pull-requests / 1 / merge(预接收钩子
拒绝
)
在目标存储库上,我可以看到这些奇怪的引用,但是UI中没有拉取请求。我怀疑目标存储库中的某些内容已损坏,但是我无法使用
清除这些引用git update-ref -d refs/pull-requests/1/merge
git update-ref -d refs/pull-requests/1/from
git push
该操作产生以下错误:
远程:您正在尝试更新保留给它的引用
Bitbucket的请求请求功能。 Bitbucket管理这些裁判
自动,并且它们可能不会被用户更新。远程:已拒绝
refs:远程:refs / pull-requests / 1 /来自远程:
refs / pull-requests / 1 /合并
我有2个问题:)
1)什么会导致目标存储库中的此类损坏?
2)有什么方法可以消除目标上的这些引用?