Je suis cette documentation: 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
La sortie montre que le référentiel est poussé comme un miroir, mais pour une raison quelconque, j'obtiens également ces erreurs:
! [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)
Quelles sont ces erreurs? Puis-je supposer que le référentiel a été mis en miroir?
Comme mentionné dans ce problème , cela se produit lorsque vous mettez en miroir un dépôt GitHub qui a des demandes d'extraction qui lui sont faites.
Les références commençant '
refs/pull
'sont des références synthétiques en lecture seule créées par GitHub - vous ne pouvez pas les mettre à jour (et donc les' nettoyer '), car elles reflètent des branches qui peuvent en fait provenir d'autres référentiels - ceux qui vous a soumis des pull-requests.Donc, bien que vous ayez poussé toutes vos références réelles, les demandes d'extraction ne sont pas mises à jour
Vous devrez refléter un dépôt GitHub sans leurs demandes de tirage .
Remplacez simplement la référence fourre-tout ci-dessus par deux spécifications plus spécifiques pour n'inclure que toutes les têtes et les étiquettes, mais pas les poignées, et toutes les références de tir à distance ne seront plus dans votre miroir nu:
fetch = +refs/heads/*:refs/heads/*
fetch = +refs/tags/*:refs/tags/*
fetch = +refs/change/*:refs/change/*
(Je voulais que ce soit un commentaire, mais pas assez de réputation)
D'après la réponse de @ VonC, cela ne semble pas être un problème.
Donc, bien que vous ayez poussé toutes vos références réelles, les demandes d'extraction ne sont pas mises à jour
Je vois deux scénarios dans lesquels vous souhaitez dupliquer votre référentiel.
Dans les deux cas, il semble que git clone --mirror
est votre option la plus sûre, car même si vous voyez des erreurs dans votre Push
, tout le contenu lié à la demande non-pull a été poussé avec succès, ce qui prend en charge le scénario 1. Pour le scénario 2, vous souhaitez que ces extraire les références de demande dans le cadre de votre sauvegarde.