Exercice - Charger votre projet sur GitHub

Effectué

Vous pouvez importer des dépôts vers GitHub à l’aide de GitHub Importer, de la ligne de commande ou d’outils de migration externes.

À propos de GitHub Importer

Si vous avez du code source dans Subversion, Mercurial, TFVC (Team Foundation Version Control) ou un autre dépôt Git, vous pouvez le déplacer vers GitHub à l’aide de GitHub Importer. GitHub Importer est un outil qui importe rapidement des référentiels de code source, y compris les validations et l’historique des révisions, sur GitHub pour vous.

Pendant une importation, en fonction du système de contrôle de version à partir duquel vous importez, vous pouvez effectuer certaines des tâches suivantes. Authentifiez-vous auprès de votre dépôt distant, mettez à jour l’attribution de l’auteur de validation, importez des référentiels avec des fichiers volumineux ou supprimez des fichiers volumineux si vous ne souhaitez pas utiliser le stockage de fichiers volumineux Git.

Action d’importation Subversion Mercurial TFVC Git
S’authentifier avec un référentiel distant X X X X
Mettre à jour l’attribution de l’auteur de validation X X X
Déplacer des fichiers volumineux vers le stockage de grands fichiers Git X X X
Supprimer des fichiers volumineux de votre référentiel X X X

Importation d’un dépôt avec GitHub Importer

Si vous avez un projet hébergé sur un autre système de contrôle de version, vous pouvez l’importer automatiquement dans GitHub à l’aide de l’outil GitHub Importer. GitHub Importer n’est pas adapté à toutes les importations. Si votre code existant est par exemple hébergé sur un réseau privé, notre outil ne peut pas y accéder. Dans de tels cas, nous vous recommandons d’importer à l’aide de la ligne de commande pour les dépôts Git ou d’un outil de migration de code source externe pour les projets importés à partir d’autres systèmes de gestion de versions.

Si vous désirez faire correspondre les validations dans votre référentiel aux comptes d’utilisateurs GitHub des auteurs lors de l’importation. Assurez-vous au préalable que chaque contributeur de votre dépôt dispose d’un compte GitHub avant de commencer l’importation.

Les dépôts et les fichiers individuels sont soumis à des limites de taille. Pour plus d’informations, vérifiez à propos des fichiers volumineux sur GitHub.

Pour importer un dépôt, effectuez ces étapes :

  1. Dans le coin supérieur droit d’une page, sélectionnez +, puis sélectionnez Importer le dépôt.

    Screenshot of the import repository button.

  2. Sous « URL de clone de votre ancien dépôt », tapez l’URL du projet que vous souhaitez importer.

    Screenshot of the old repository URL textbox.

  3. Choisissez votre compte d’utilisateur ou une organisation qui sera propriétaire du dépôt, puis tapez un nom pour le dépôt sur GitHub.

    Screenshot of the new import repository owner name.

  4. Spécifiez si le nouveau référentiel doit être public ou privé. Pour plus d’informations, consultez Définition de la visibilité du dépôt.

    Screenshot of the new repository public or private options.

  5. Passez en revue les informations que vous avez entrées, puis sélectionnez Commencer l’importation.

    Screenshot of the begin import button for a new repository import.

  6. Si votre ancien projet était protégé par mot de passe, saisissez vos informations de connexion pour ce projet et sélectionnez Envoyer.

    Screenshot of the location to input your old repository credentials importer.

  7. S’il existe plusieurs projets hébergés à l’URL de clone de votre ancien projet, choisissez le projet que vous souhaitez importer, puis sélectionnez Envoyer.

    Screenshot of a selection of projects found at the same URL. project importer.

  8. Si votre projet contient des fichiers de plus de 100 Mo, choisissez d’importer les fichiers volumineux à l’aide du Stockage de grands fichiers Git, puis sélectionnez Continuer.

    Screenshot of files suitable for Git LFS importer.

Vous recevez un e-mail lorsque le référentiel est entièrement importé.

Mettre à jour l’attribution d’auteur de commit avec GitHub Importer

Lors d’une importation, vous pouvez faire correspondre les commits dans votre dépôt avec le compte GitHub de l’auteur des commits. GitHub Importer recherche les utilisateurs de GitHub dont les adresses e-mail correspondent aux auteurs des commits dans le dépôt que vous importez. Vous pouvez alors associer un commit à son auteur sur la base de l’adresse e-mail ou du nom d’utilisateur GitHub de l’auteur.

Mise à jour des auteurs de commits

Pour mettre à jour un auteur de commit, effectuez les étapes suivantes :

  1. Après l’importation de votre dépôt, dans la page d’état de l’importation, sélectionnez Faire correspondre les auteurs.

    Screenshot of the match authors button.

  2. En regard de l’auteur dont vous souhaitez mettre à jour les informations, sélectionnez Associer.

    Screenshot of the connect commit author process.

  3. Tapez l’adresse e-mail ou le nom d’utilisateur GitHub de l’auteur, puis appuyez sur Entrée.

Attribution de commits à un utilisateur GitHub ayant une adresse e-mail publique

Si l’auteur d’une validation dans votre référentiel importé possède un compte GitHub, associé à l’adresse e-mail utilisée pour créer les validations, et qu’il ne définit pas son adresse e-mail de validation comme privée. GitHub Importer fait ensuite correspondre l’adresse e-mail associée à la validation à l’adresse e-mail publique associée à son compte GitHub et attribue la validation à son compte GitHub.

Attribution de commits à un utilisateur GitHub n’ayant pas d’adresse e-mail publique

Si l’auteur d’une validation dans votre référentiel importé ne définit pas d’adresse e-mail publique sur son profil GitHub ou s’il définit son adresse e-mail de validation comme privée. GitHub Importer peut ne pas être ensuite capable de faire correspondre l’adresse e-mail associée à la validation avec son compte GitHub.

L’auteur de la validation peut résoudre ce problème en définissant son adresse e-mail comme privée. Leurs validations sont ensuite attribuées à <username>@users.noreply.github.com et les validations importées associées à leur compte GitHub.

Attribution de commits en utilisant une adresse e-mail

Si l’adresse e-mail de l’auteur n’est pas associée à son compte GitHub, il peut ajouter l’adresse à son compte après l’importation et les validations vont correctement être attribuées.

Si l’auteur ne possède aucun compte GitHub, GitHub Importer attribue ses validations à l’adresse e-mail associée aux validations.

Importation d’un dépôt GitHub en utilisant la ligne de commande

Si GitHub Importer ne convient pas à vos besoins, par exemple si votre code existant est hébergé sur un réseau privé, veuillez importer à l’aide de la ligne de commande.

Avant de commencer, vérifiez que vous connaissez les éléments suivants :

  • Votre nom d’utilisateur GitHub
  • L’URL de clonage du dépôt externe, par exemple https://external-host.com/user/repo.git ou git://external-host.com/user/repo.git (ou bien avec user@ devant le nom de domaine external-host.com)

Pour les besoins de la démonstration, nous utilisons :

  • Un compte externe nommé ext-user
  • Un hôte Git externe nommé https://external-host.com
  • Un compte d’utilisateur personnel GitHub nommé ghuser
  • Un dépôt sur GitHub.com nommé repo.git

Suivez ces étapes pour importer votre dépôt externe :

  1. Créez un dépôt sur GitHub. Vous importez votre dépôt Git externe dans ce nouveau référentiel.

  2. Sur la ligne de commande, créez un clone « nu » du dépôt en utilisant l’URL de clonage externe. Cette commande crée une copie complète des données, mais sans répertoire de travail pour la modification des fichiers, tout en garantissant une exportation propre et fraîche de toutes les anciennes données.

    $ git clone --bare https://external-host.com/ext-user/repo.git
    #Makes a bare clone of the external repository in a local directory 
    
  3. Poussez le dépôt cloné localement vers GitHub avec l’option « miroir », ce qui garantit que toutes les références comme les branches et les étiquettes seront bien copiées dans le dépôt importé.

    $ cd repo.git
    $ git push --mirror https://github.com/ghuser/repo.git
    #Pushes the mirror to the new repository on GitHub.com 
    
  4. Supprimez le dépôt local temporaire.

    $ cd ..
    $ rm -rf repo.git 
    

Ajout de code hébergé localement dans GitHub

Si vous avez du code source existant ou des dépôts stockés localement sur votre ordinateur ou réseau privé, vous pouvez les ajouter à GitHub en tapant les commandes appropriées dans un terminal. En saisissant directement les commandes Git ou grâce à l’interface CLI GitHub.

GitHub CLI est un outil open source permettant d’utiliser GitHub à partir de la ligne de commande de votre ordinateur. GitHub CLI peut simplifier le processus d’ajout d’un projet existant à GitHub à l’aide de la ligne de commande. Pour en savoir plus sur GitHub CLI, consultez À propos de GitHub CLI.

Ajout d’un dépôt local à GitHub avec GitHub CLI

Suivez ces étapes pour ajouter un dépôt local avec l’interface CLI GitHub :

  1. À partir de la ligne de commande, accédez au répertoire racine de votre projet.

  2. Initialisez le répertoire local en tant que dépôt Git.

    git init -b main
    
  3. Indexez et commitez tous les fichiers dans votre projet.

    git add . && git commit -m "initial commit"
    
  4. Pour créer un dépôt pour votre projet dans GitHub, utilisez gh repo create subcommand. Lorsque vous y êtes invité, sélectionnez Pousser un dépôt local existant vers GitHub et entrez le nom souhaité pour votre dépôt. Si vous voulez que votre projet appartienne à une organisation plutôt qu’à votre compte d’utilisateur, spécifiez le nom de l’organisation et le nom du projet avec organization-name/project-name.

  5. Suivez les invites interactives. Pour ajouter le dépôt distant et le pousser, répondez oui quand vous êtes invité à ajouter le dépôt distant et à pousser les commits vers la branche active.

  6. Vous pouvez aussi ignorer toutes les invites, fournir le chemin du dépôt avec l’indicateur --source et passer un indicateur de visibilité (--public, --private ou --internal). Par exemple : gh repo create --source=. --public. Spécifiez un dépôt distant avec l’indicateur --remote. Pour pousser vos commits, passez l’indicateur --push. Pour plus d’informations sur les arguments possibles, reportez-vous au manuel de GitHub CLI.

Ajout d’un dépôt local à GitHub à l’aide de Git

Suivez ces étapes pour ajouter un dépôt local à l’aide de Git :

  1. Créez un dépôt sur GitHub.com. Pour éviter les erreurs, évitez d’initialiser le nouveau dépôt avec un fichier README, une licence ou gitignore files. Vous pouvez ajouter ces fichiers après l’envoi (push) de votre projet vers GitHub.

    Screenshot of new repository creation.

  2. Ouvrez l’interpréteur de commandes Git.

  3. Changez le répertoire de travail actuel par votre projet local.

  4. Initialisez le répertoire local en tant que dépôt Git.

    $ git init -b main
    
  5. Ajoutez les fichiers dans votre nouveau dépôt local. Cette commande les indexe également pour la première validation.

    $ git add .
    # Adds the files in the local repository and stages them for commit. To unstage a file, use 'git reset HEAD YOUR-FILE'.
    
  6. Validez les fichiers indexés dans votre référentiel local.

    $ git commit -m "First commit"
    # Commits the tracked changes and prepares them to be pushed to a remote repository. To remove this commit and modify the file, use 'git reset --soft HEAD~1' and commit and add the file again.
    
  7. Au-dessus de votre dépôt, dans la page d’installation rapide de GitHub.com, sélectionnez le bouton Copier pour copier l’URL du dépôt distant.

    screenshot copy remote repository url quick setup

  8. Dans l’invite de commandes, ajoutez l’URL du dépôt distant. Votre référentiel local est envoyé (push) vers cet emplacement.

    $ git remote add origin <REMOTE_URL> 
    # Sets the new remote
    $ git remote -v
    # Verifies the new remote URL
    
  9. Poussez les modifications dans votre dépôt local vers GitHub.com.

    $ git push origin main
    # Pushes the changes in your local repository up to the remote repository you specified as the origin
    

Outils de migration de code source

Vous pouvez utiliser des outils externes pour déplacer vos projets vers GitHub. Nous vous recommandons d’utiliser GitHub Importer pour importer des projets à partir de Subversion, Mercurial, Team Foundation Version Control (TFVC) ou d’un autre dépôt Git. Vous pouvez également utiliser ces outils externes pour convertir votre projet en Git.

Importation à partir de Subversion

Dans un environnement Subversion classique, plusieurs projets sont stockés dans un seul dépôt racine. Sur GitHub, chacun de ces projets est habituellement mappé à un dépôt Git distinct pour un compte d’utilisateur ou une organisation. Nous vous suggérons d’importer chaque partie de votre dépôt Subversion dans un dépôt GitHub distinct si :

  • Les collaborateurs doivent vérifier ou commiter cette partie du projet séparément
  • Vous voulez que différentes parties aient leurs propres autorisations d’accès

Nous vous recommandons ces outils pour convertir des dépôts Subversion en Git :

Importation à partir de Mercurial

Nous vous recommandons hg-fast-export pour convertir des dépôts Mercurial en Git.

Importation à partir de TFVC

Nous vous recommandons git-tfs pour déplacer des changements entre TFVC et Git.

Pour plus d’informations sur le déplacement de TFVC (un système centralisé de gestion de version) vers Git, consultez Migrer vers Git à partir de la gestion de version.