2015-12-14 26 views
10

をミラーリングした後、私はこの文書を次のようだ: https://help.github.com/articles/duplicating-a-repository/! [リモート拒否]エラーがgitリポジトリ

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) 

これらはどのような種類のエラーですか?リポジトリがミラーリングされていると仮定できますか?

答えて

14

this issueに記載されているように、プルリクエストが作成されたGitHubレポをミラー化するとそのようになります。彼らはよく、実際に他のリポジトリから来るかもしれない枝を反映するので、あなたは、(したがって、「クリーン」と)それらを更新することはできません -

レフリーが始まる「refs/pull」はGitHubのによって作成された合成読み取り専用のレフリーです - プルリクエストをあなたに提出したものあなたはすべてのあなたの本当のレフリーをプッシュした一方で

ので、プル要求は

を更新されませんあなたはmirror a GitHub repo without their pull requestsする必要があります。

単純にすべてのヘッドとタグではなく、引っ張る、およびすべてのリモートプル、参考文献は、もはやあなたの裸鏡にそれをしないだろう含めるには、2つのより具体的な仕様と上記キャッチオールrefspec置き換えます

fetch = +refs/heads/*:refs/heads/* 
fetch = +refs/tags/*:refs/tags/* 
fetch = +refs/change/*:refs/change/* 
+0

ありがとうございました。何らかの理由で私はまだ同じエラーが発生しています。私は--mirrorを使ってリポジトリをクローンします、 'git config -e'でgitの設定を編集し、' git remote update'と 'git push mirror'を実行しても同じエラーが出ます。 – deez

+0

@deezx 'git config --get-regex remote.origin.fetch'を返すのは何ですか? – VonC

+0

これは出力 - $ gitの設定--get-正規表現remote.origin.fetch remote.origin.fetchの+、参考文献/ヘッド/ *です:レフリー/ヘッド/ * remote.origin.fetch +レフリー/タグ/ *: refs/tags/* 実際に、 - mirrorを付けずにリポジトリをクローンして、あなたが書いたときにgit configを編集すると、うまくいきました。それはブランチとタグだけを取り出したので、うまくいった!私の唯一の疑問は、 'refs/changes'を反映していないことです。プルリクエスト( 'refs/pull')を除いてgitにすべてをフェッチするように指示する方法はありますか?レフリー/変更/ * ''それはheads'、 'tags'と' changes'ではなくを取得するために 'pull': – deez

関連する問題