我有一个定期 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
自动,并且它们可能不会被用户更新。偏僻的:
拒绝的 refs:remote: refs/pull-requests/1/from
远程:refs/pull-requests/1/merge 远程:![偏僻的
拒绝] refs/pull-requests/1/from (pre-receive hook denied) !
[remote denied] 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
自动,并且它们可能不会被用户更新。远程:拒绝
参考:远程:参考/pull-requests/1/来自远程:
refs/pull-requests/1/merge
我有两个问题:)
1)什么会导致目标存储库中的这种损坏?
2)有没有办法摆脱目标上的这些引用?