web-dev-qa-db-fra.com

! Erreurs [rejetées à distance] après la mise en miroir d'un référentiel git

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?

25
deez

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/*
24
VonC

au lieu de

git clone - miroir

utilisation

git clone - nu

instructions

3
Smart Networks

(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.

  1. Vous souhaitez une sauvegarde/copie d'un référentiel sur lequel vous avez un contrôle total.
  2. Vous modifiez l'historique d'un dépôt et vous avez besoin d'une sauvegarde localement au cas où vous auriez besoin d'annuler vos modifications.

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.

0
zhanga