私はこのドキュメントに従っています: https://help.github.com/articles/duplicating-a-repository/
git clone --mirror https://github.com/exampleuser/repository-to-mirror.git
cd repository-to-mirror.git
git Push --mirror https://github.com/exampleuser/mirrored
出力は、リポジトリがミラーとしてプッシュされていることを示していますが、何らかの理由でこれらのエラーも発生しています。
! [remote rejected] refs/pull/1/head -> refs/pull/1/head (deny updating a hidden ref)
! [remote rejected] refs/pull/1/merge -> refs/pull/1/merge (deny updating a hidden ref)
これらのエラーは何ですか?リポジトリがミラーリングされていると思いますか?
この問題 で述べたように、これはpull要求が作成されたGitHubリポジトリをミラーリングするときに発生します。
'
refs/pull
'で始まる参照は、GitHubによって作成された読み取り専用の参照です-更新できません(したがって、 'クリーン')それらは、実際には他のリポジトリからのブランチを反映しているためです-プルリクエストをあなたに提出したものです。したがって、実際の参照をすべてプッシュしても、プルリクエストは更新されません。
GitHubリポジトリをミラー化するプルリクエストなし にする必要があります。
上記のcatch-all refspecを2つのより具体的な仕様に置き換えるだけで、すべてのヘッドとタグだけが含まれ、プルは含まれなくなります。すべてのリモートプルrefがベアミラーに組み込まれなくなります。
fetch = +refs/heads/*:refs/heads/*
fetch = +refs/tags/*:refs/tags/*
fetch = +refs/change/*:refs/change/*
(私はこれをコメントにしたかったが、十分な評判ではなかった)
@VonCの答えに基づいて、これは問題のないように聞こえます。
したがって、実際の参照をすべてプッシュしても、プルリクエストは更新されません。
リポジトリを複製するシナリオが2つあります。
どちらの場合も、git clone --mirror
が最も安全なオプションです。Push
にエラーが表示されても、プル以外のリクエストに関連するすべてのコンテンツが正常にプッシュされ、シナリオ1が処理されます。シナリオ2の場合は、バックアップの一部としてのプルリクエスト参照。