Exercice - Charger votre projet sur GitHub
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 dépôts de code source, y compris des validations et l’historique des révisions, vers 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 | Mercuriel | TFVC | Git |
|---|---|---|---|---|
| S’authentifier auprès du 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 fichiers volumineux Git | X | X | X | |
| Supprimer des fichiers volumineux de votre référentiel | X | X | X |
Importation d’un référentiel 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, consultez À propos des fichiers volumineux sur GitHub.
Pour importer un référentiel, procédez comme suit :
Dans le coin supérieur droit de n’importe quelle page, sélectionnez +, puis sélectionnez Importer le référentiel.
Sous « URL de clone de votre ancien dépôt », tapez l’URL du projet que vous souhaitez importer.
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.
Spécifiez si le nouveau référentiel doit être public ou privé. Pour plus d’informations, consultez Configuration de la visibilité du dépôt.
Passez en revue les informations que vous avez entrées, puis sélectionnez Commencer l’importation.
Si votre ancien projet a été protégé par un mot de passe, tapez vos informations de connexion pour ce projet, puis sélectionnez Envoyer.
S’il existe plusieurs projets hébergés sur l’URL de clone de votre ancien projet, choisissez le projet que vous souhaitez importer, puis sélectionnez Envoyer.
Si votre projet contient des fichiers de plus de 100 Mo, choisissez d’importer les fichiers volumineux à l’aide du stockage de fichiers volumineux Git, puis sélectionnez Continuer.
Vous recevez un e-mail lorsque le référentiel est entièrement importé.
Mise à jour de l’attribution de l’auteur de validation avec GitHub Importer
Pendant une importation, vous pouvez faire correspondre les validations dans votre référentiel avec le compte GitHub de l’auteur de validation. GitHub Importer recherche les utilisateurs GitHub dont les adresses e-mail correspondent aux auteurs des validations dans le référentiel que vous importez. Vous pouvez ensuite connecter une validation à son auteur à l’aide de son adresse e-mail ou du nom d’utilisateur GitHub de l’auteur.
Mise à jour des auteurs de validation
Pour mettre à jour un auteur de commit, effectuez les étapes suivantes :
Après avoir importé votre référentiel, dans la page d’état d’importation, sélectionnez Mettre en correspondance les auteurs.
En regard de l’auteur dont vous souhaitez mettre à jour les informations, sélectionnez Se connecter.
Tapez l’adresse e-mail ou le nom d’utilisateur GitHub de l’auteur, puis appuyez sur Entrée.
Attribution de validations à un utilisateur GitHub avec une adresse e-mail publique
Si un 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 validations à un utilisateur GitHub sans 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 si son adresse e-mail de validation est 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 validations à l’aide d’une adresse e-mail
Si l’adresse e-mail de l’auteur n’est pas associée à son compte GitHub, elle peut ajouter l’adresse à son compte après l’importation et les validations sont correctement 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 n’est pas adapté à vos besoins, par exemple si votre code existant est hébergé sur un réseau privé, nous vous recommandons d’importer à l’aide de la ligne de commande.
Avant de commencer, vérifiez que vous savez :
- Votre nom d’utilisateur GitHub
- URL de clone pour le référentiel externe, par exemple
https://external-host.com/user/repo.gitougit://external-host.com/user/repo.git(peut-être avec unuser@devant le nom de domaineexternal-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 :
Créez un dépôt sur GitHub. Vous importez votre dépôt Git externe dans ce nouveau référentiel.
Créez un clone « nu » du référentiel à l’aide de l’URL de clone externe. Sur la ligne de commande, entrez la commande suivante. 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 directoryPoussez 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.comSupprimez le référentiel local temporaire.
$ cd .. $ rm -rf repo.git
Ajout de code hébergé localement à 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 :
Dans la ligne de commande, accédez au répertoire racine de votre projet.
Initialisez le répertoire local en tant que référentiel Git.
git init -b mainIndexez et commitez tous les fichiers dans votre projet.
git add . && git commit -m "initial commit"Pour créer un dépôt pour votre projet dans GitHub, utilisez
gh repo create subcommand. Lorsque vous y êtes invité, sélectionnez Envoyer (push) un dépôt local existant vers GitHub et entrez le nom souhaité pour votre référentiel. Si vous souhaitez que votre projet appartienne à une organisation au lieu de votre compte d’utilisateur, spécifiez le nom de l’organisation et le nom du projet avecorganization-name/project-name.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.
Vous pouvez également ignorer toutes les invites, fournir le chemin d’accès au référentiel avec l’indicateur
--sourceet passer un indicateur de visibilité (--public,--privateou--internal). Par exemple,gh repo create --source=. --public. Spécifiez un distant avec l’indicateur--remote. Pour envoyer (push) vos validations, passez l’indicateur--push. Pour plus d’informations sur les arguments possibles, reportez-vous au manuel de l’interface CLI GitHub.
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 :
Créez un référentiel 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.
Ouvrez Git Bash.
Remplacez le répertoire de travail actuel par votre projet local.
Initialisez le répertoire local en tant que référentiel Git.
$ git init -b mainAjoutez les fichiers dans votre nouveau référentiel 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'.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.En haut de votre référentiel sur la page De configuration rapide de GitHub.com, sélectionnez le bouton Copier pour copier l’URL du référentiel distant.
Dans l’invite de commandes, ajoutez l’URL du référentiel 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 URLEnvoyez les modifications dans votre référentiel local à 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 dépôt racine unique. 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 extraire ou valider cette partie du projet séparément des autres parties
- Vous souhaitez que différentes parties disposent de leurs propres autorisations d’accès
Nous vous recommandons de convertir des dépôts Subversion en Git :
Importation à partir de Mercurial
Nous vous recommandons hg-fast-export pour convertir des référentiels Mercurial vers Git.
Importation à partir de TFVC
Nous vous recommandons git-tfs pour déplacer les modifications entre TFVC et Git.
Pour plus d’informations sur le déplacement de TFVC (système de contrôle de version centralisé) vers Git, consultez Migrer vers Git à partir du contrôle de version centralisé.