git push --mirror给出“无法推送一些引用”

Eng*_*110 1 git

我正在尝试创建一个可以将git存储库镜像到另一个存储库的脚本。一切都很好,但它一直在说

[remote rejected] refs/pull/xx/head -> refs/pull/xx/head (The current action can only be performed by the system.)
Run Code Online (Sandbox Code Playgroud)

该存储库被克隆到我计算机上的文件夹中,然后被推送到另一个git。所有文件和历史记录都会被克隆并按原样推送,但是此“错误”不断出现。我能做什么?

在此处输入图片说明

这是我的剧本

git clone --mirror https://path1.com/_git/fredagsproject1
cd fredagsproject1.git
git remote set-url --push origin https://path2.com/_git/fredagsproject2
git push --mirror
Run Code Online (Sandbox Code Playgroud)

tor*_*rek 5

运行时git push,您的Git会通过Internet电话调用另一个Git。您的Git递给他们的Git一些对象(commit等),然后向他们的Git发送一堆请求:

  • 请设置refs/heads/branch要提交1234567...
  • 请设置refs/tags/v1.2为指向带注释的标签对象fedcba9...

等等。

使用git push --mirror告诉您的Git要求 Git设置您拥有的每个名称,并在请求中使用完全相同的名称。如图所示(您已复制到文本行),其中许多名称具有以下形式:

refs/pull/xx/head
Run Code Online (Sandbox Code Playgroud)

对于一些两位数的xx序列。

他们的Git只是在说不:我拒绝设定这个名字。

您可以尝试添加--force,告诉Git发送命令- 设置这些名称!-instead一个礼貌的请求,请设置这些名字,但看看的原因,他们的Git与拒绝一起返回:

The current action can only be performed by the system.
Run Code Online (Sandbox Code Playgroud)

似乎在说:放开这个名字!我保留它供使用,您竟敢要求我更改我的 refs/pull/73/head 在这种情况下,命令表(与礼貌的请求表相反)也可能会被拒绝。

请注意该窗体的REF-名称和被内部使用,除其他外,对GitHub的其拉请求的管理。您甚至可能甚至不应该尝试设置这些名称,因此,如果尝试失败,那可能是一件好事refs/pull/number/headrefs/pull/number/merge