web-dev-qa-db-fra.com

Déchiffrer le référentiel Git de GitHub vers GitLab

Supposons que je souhaite appliquer un correctif à un projet de quelqu'un d'autre. Ce projet réside sur GitHub.

Je pourrais créer un fork sur GitHub et implémenter le correctif.

Cependant, je voudrais créer mon fork sur GitLab plutôt que sur GitHub.

Est-ce possible? Comment?

J'ai lu cet article: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-Origin/

En tout cas, je ne suis pas sûr de ce que je devrais faire dans mon cas.

  • Devrais-je simplement créer un fork sur GitLab du projet à partir de GitHub?
  • Ou devrais-je créer un miroir sur GitLab du projet de GitHub?
  • Ou devrais-je créer un miroir sur GitLab, puis créer un miroir?
  • Ou devrais-je faire quelque chose de complètement différent?

Quelle est la bonne approche?.

Merci.

METTRE À JOUR

La mise en miroir de référentiels sur GitLab n'a probablement aucun sens. Je peux créer un miroir du référentiel MY GitHub sur GitLab mais je ne peux pas créer un miroir du référentiel de quelqu'un d'autre.

https://docs.gitlab.com/ee/workflow/repository_mirroring.html

C'est ce que j'ai fait jusqu'à présent:

J'ai cloné le projet original GitHub sur ma machine locale. J'ai envoyé le correctif dans une nouvelle branche de mon référentiel local. J'ai créé un projet vide sur GitLab. J'ai défini Origin dans mon référentiel local sur ce projet vide sur GitLab et j'ai poussé les deux branches vers GitLab. J'ai installé en amont dans mon référentiel local le référentiel GitHub.

Lorsque je veux obtenir de nouveaux commits du référentiel GitHub d'origine vers le référentiel sur GitLab (c'est-à-dire synchroniser les référentiels), je peux le faire en utilisant mon référentiel local comme étape intermédiaire. Cependant, il n'y a pas de lien direct entre le référentiel sur GitHub et le référentiel sur GitLab. Ma configuration est-elle correcte? Y at-il une différence si je fais une fourchette sur GitHub?

20
Cimlman

Si vous souhaitez simplement suivre les modifications, créez d'abord un référentiel vide dans GitLab (ou tout ce que vous utilisez éventuellement) et clonez-le sur votre ordinateur.

Ajoutez ensuite le projet GitHub en tant que télécommande " en amont " avec:

git remote add upstream https://github.com/user/repo

Maintenant, vous pouvez aller chercher et tirer de l’amont en cas de changement. (Vous pouvez également y appuyer ou y fusionner si vous avez des droits d'accès.)

git pull upstream master

Enfin, rendez-vous dans votre propre référentiel GitLab:

git Push Origin master

Si vous ne souhaitez pas extraire manuellement/Push Origin en amont, GitLab offre une possibilité de mise en miroir dans Paramètres => Référentiel => Référentiels en miroir.

29
CJxD

Il est possible de créer un référentiel de github privé.

  1. Cliquez sur nouveau projet
  2. Sélectionnez Importer
  3. Sélectionnez github
  4. OAuth2 utilisé pour authentifier et créer automatiquement une application gitlab
  5. Sélectionnez le projet à fourcher

^ Je viens de faire cela avec un dépôt privé sur github, importé avec succès (branches etc.). Le projet importé est automatiquement gardé privé;)

1
Daithí

Je ne vois pas vraiment comment GitLab se situe ici.

Si le projet est sur GitHub, ils utilisent probablement les demandes de tirage GitHub. Il n'est donc pas utile de déplacer leur projet vers GitLab.

Branchez simplement leur référentiel GitHub et faites une demande d'extraction sur GitHub si vous souhaitez contribuer. Si vous ne pouvez absolument pas contribuer à GitHub pour une raison quelconque, je suppose que vous pouvez créer un correctif et l’envoyer par courrier électronique au responsable.

1
tehp

La manière par navigateur seulement:

  1. Créer un nouveau projet dans Gitlab (Un projet vide avec un nom suffit)
  2. Allez dans Paramètres -> Réspositif
  3. Entrez l'URL GitHub sous "Référencement en miroir"
  4. Assurez-vous que 'Direction du miroir' est 'Pull'
  5. Appuyez sur le bouton 'Référentiel miroir'
  6. Appuyez sur l'icône de synchronisation à côté de l'entrée qui apparaît.
0
aksh1618