web-dev-qa-db-fra.com

Importer un projet git existant dans GitLab?

J'ai un compte d'installation Gitlab sur lequel j'ai créé le référentiel "ffki-startseite"

Maintenant, je veux cloner le référentiel git://freifunk.in-kiel.de/ffki-startseite.git dans ce référentiel avec tous les commits et branches, afin que je puisse commencer à travailler dessus dans mon propre domaine.

Comment puis-je l'importer?

128
rubo77

Déplacement d'un projet de GitHub vers GitLab, y compris les problèmes, les requêtes d'extraction, les wiki, les jalons, les étiquettes, les notes de version et les commentaires

Il existe une instruction détaillée sur GitLab Docs:

https://docs.gitlab.com/ee/user/project/import/github.html

tl; dr

  • Assurez-vous que les utilisateurs de GitHub que vous souhaitez mapper à des utilisateurs de GitLab ont:

    • Un compte GitLab qui s'est connecté à l'aide de l'icône GitHub - ou -
    • Un compte GitLab avec une adresse email qui correspond à l'adresse email publique de l'utilisateur GitHub
  • Dans la barre de navigation supérieure, cliquez sur + et sélectionnez Nouveau projet.

  • Sélectionnez l'onglet Importer un projet, puis sélectionnez GitHub.
  • Sélectionnez le premier bouton pour répertorier vos référentiels GitHub. Vous êtes redirigé vers une page sur github.com pour autoriser l'application GitLab.
  • Cliquez sur Autoriser gitlabhq. Vous êtes redirigé vers la page d'importation de GitLab et tous vos référentiels GitHub sont répertoriés.
  • Continuez à sélectionner les référentiels à importer.

Mais s'il vous plaît lisez le page Docs GitLab pour plus de détails et de points d'ancrage!

(ce n'est pas beaucoup)

2
rubo77

J'ai été en mesure d'exporter entièrement mon projet ainsi que tous les commits, les branches et les balises vers gitlab via les commandes suivantes exécutées localement sur mon ordinateur:

Pour illustrer mon exemple, je vais utiliser https://github.com/raveren/kint en tant que référentiel source que je veux importer dans gitlab. J'ai créé un projet vide nommé Kint (sous l'espace de noms raveren) dans gitlab auparavant et il m'a indiqué l'URL http git du projet nouvellement créé: http : //gitlab.example.com/raveren/kint.git

Les commandes sont indépendantes du système d'exploitation.

Dans un nouvea répertoire:

git clone --mirror https://github.com/raveren/kint
cd kint.git
git remote add gitlab http://gitlab.example.com/raveren/kint.git
git Push gitlab --mirror

Maintenant, si vous souhaitez continuer à utiliser un référentiel cloné localement avec la nouvelle télécommande, exécutez les commandes suivantes * ici:

git remote remove Origin
git remote add Origin http://gitlab.example.com/raveren/kint.git
git fetch --all

* Cela suppose que vous n'avez pas renommé votre maître distant de Origin, sinon changez les deux premières lignes pour le refléter.

141
raveren

Ajoutez la nouvelle télécommande gitlab à votre référentiel existant et procédez comme suit:

git remote add gitlab url-to-gitlab-repo
git Push gitlab master
105
user425495

À garder TOUS LES ÉTIQUETTES ET BRANCHES

Il suffit simplement d’exécuter cette commande dans un existing Git repository

cd existing_repo
git remote add gitlab [email protected]:hutber/kindred.com.git
git Push -u gitlab --all
git Push -u gitlab --tags
18
Jamie Hutber

Voici les étapes fournies par Gitlab:

cd existing_repo
git remote rename Origin old-Origin
git remote add Origin https://gitlab.example.com/rmishra/demoapp.git
git Push -u Origin --all
git Push -u Origin --tags
16
Rajkaran Mishra

rake gitlab: import: repos pourrait être une méthode plus appropriée pour importer en masse:

  • copier le référentiel nu sous repos_path (/home/git/repositories/group/repo.git). Le nom du répertoire doit se terminer par .git et se trouver dans un espace de noms de groupe ou d'utilisateur.
  • lancer bundle exec rake gitlab:import:repos

Le propriétaire sera le premier administrateur et un groupe sera créé s'il n'existe pas déjà.

Voir aussi: Comment importer un référentiel bare git existant dans Gitlab?

Il s’agit d’un déménagement de base d’un dépôt à un nouvel emplacement. J'utilise cette séquence tout le temps. Avec - bare, aucun fichier source ne sera vu.

Ouvrez Git Bash.
Créez un clone nu du référentiel.

git clone --bare https://github.com/exampleuser/old-repository.git

Miroir-Push vers le nouveau référentiel.

cd old-repository.git

git Push --mirror https://github.com/exampleuser/new-repository.git

Supprimez le référentiel local temporaire créé à l'étape 1.

cd ../
rm -rf old-repository.git
7
Martijn van Wezel
git clone --mirror [email protected]:username/repo-name.git

git remote add gitlab ssh://[email protected]/username/repo.git

git Push -f --tags gitlab refs/heads/*:refs/heads/*

Il est préférable de le faire sur ssh, le https pourrait ne pas fonctionner

4
kazerm