Comment migrer un projet existant vers GitHub ?

Effectué

Ici, nous allons aborder les points importants à prendre en compte pour la migration d’un projet vers GitHub à partir d’un système de gestion de versions hérité.

Pourquoi effectuer une migration vers GitHub ?

La documentation qui vante les mérites de GitHub ne manque pas. Ce module n’a pas pour objectif de vous convaincre de l’adopter, mais nous pouvons récapituler quelques avantages clés dans le contexte des aspects que vous devrez prendre en compte lors de la planification de votre migration.

Gestion des versions

GitHub utilise exclusivement Git, sans doute le meilleur système de gestion de versions existant actuellement. Toutefois, Git est incroyablement sophistiqué et peut présenter certains scénarios complexes d’utilisation du code que votre équipe ne connaît probablement pas. Les branches et les demandes de tirage occupent une partie essentielle du quotidien des développeurs qui utilisent Git. Il est donc nécessaire de savoir quand et comment vous en servir efficacement pour une bonne expérience sur GitHub. Il est utile pour votre équipe de commencer par se familiariser avec le flux GitHub pour pouvoir devenir rapidement opérationnelle.

Garder votre code dans le cloud

Le code des projets est encore pour beaucoup stocké dans des systèmes de gestion de versions hérités derrière des pare-feu d’entreprise. Quand vous migrez vers GitHub, vous déplacez votre code vers la plateforme cloud de GitHub, où les membres de l’équipe peuvent y accéder facilement, où qu’ils soient. Cette migration offre une bonne opportunité de passer en revue la stratégie de votre équipe concernant les types de fichiers et de données que vous gardez dans la gestion de versions. À titre de bonne pratique, vous devez partir du principe que tout ce que vous commitez sur GitHub a été compromis : veillez donc à ne pas inclure de données sensibles, comme des clés d’API, des mots de passe ou d’autres fichiers contenant des informations comparables.

Notes

GitHub offre à la fois des dépôts publics et privés, ainsi que des contrôles d’accès précis pour différentes parties d’un dépôt. Ceci vous permet de contrôler à qui vos projets sont visibles et quelle action un utilisateur donné peut effectuer.

Collaboration

GitHub offre une excellente prise en charge de la collaboration d’équipe grâce à des fonctionnalités comme les problèmes, les demandes de tirage et les revues de code. Toutefois, le flux GitHub peut différer des pratiques auxquelles votre équipe est actuellement habituée. Il est judicieux de déterminer si l’équipe s’adaptera à GitHub, si elle conservera son processus actuel ou si elle adoptera une solution intermédiaire avant d’effectuer la migration.

Si votre projet est un projet open source qui autorise des contributeurs externes, il n’y a pas de meilleur choix que GitHub pour maximiser les avantages.

Migration vers GitHub

Considérations relatives à la planification

La chose la plus importante à prendre en compte avant d’effectuer votre migration vers GitHub est de savoir si vous devez conserver quoi que ce soit à part l’état actuel de votre source. Si le fait de commencer un nouveau projet avec seulement votre code source actuel en l’état vous convient, votre meilleure option est de le traiter comme un nouveau projet et de charger le code source dans votre dépôt.

Cependant, si vous voulez conserver l’historique de la gestion des versions, vous devez effectuer une importation avec l’outil GitHub Migrator. Pour plus d’informations sur la prise en charge de l’importation pour différentes plateformes de gestion de versions, consultez Importation de données à partir de systèmes de gestion de versions tiers.

Au-delà des données Git, vous souhaiterez probablement conserver les problèmes, les demandes de tirage ou d’autres données. La prise en charge de ces éléments varie selon la plateforme et est généralement disponible dans les projets de la communauté. Ce module ne couvre pas la migration de données autres que les données Git.

Gestion des fichiers binaires actuellement stockés dans votre projet

Comme bonne pratique, les dépôts GitHub doivent être limités aux fichiers nécessaires à la génération de projets. Évitez de commiter de gros fichiers binaires, comme les artefacts de build. Pour suivre les fichiers binaires tels que les feuilles de calcul et les présentations, les portails qui comprennent comment les traiter et les versionner correctement conviennent mieux. Si vous avez besoin de versionner de gros fichiers binaires, utilisez l’extension Git Git LFS (Large File Storage).

Création de fichiers Git importants comme les fichiers .gitignore

Git prend en charge les fichiers .gitignore pour faciliter l’application de stratégies de fichiers de gestion de versions. Ces fichiers définissent les modèles de recherche utilisés pour exclure des fichiers et des dossiers du suivi du contrôle de code source. L’exemple simple suivant exclut de manière récursive tous les dossiers nommés Bin ou bin, ainsi que leur contenu, du suivi du contrôle de code source :

[Bb]in/

Vous pouvez en savoir plus en consultant Ignorer des fichiers. Vous pouvez également consulter la collection de fichiers .gitignore de démarrage proposés pour différentes plateformes dans le dépôt gitignore.

Il existe plusieurs autres fichiers couramment utilisés dans les projets GitHub pour expliquer différentes stratégies aux consommateurs et contributeurs du dépôt. Même si votre projet est privé et limité à un public restreint, il peut toujours être utile d’exprimer de manière explicite ces stratégies. Même si aucun de ces fichiers n’est obligatoire, nous en avons listé quelques-uns parmi les plus courants.

Fichier Objectif
README.md Page d’accueil du répertoire. Cette page s’affiche quand son répertoire apparaît dans GitHub.
LICENSE.md Licence sous laquelle le code est fourni.
CONTRIBUTING.md Explique comment les utilisateurs doivent contribuer au projet, comme les attentes en matière de demande de tirage.
SECURITY.md Décrit la stratégie de sécurité du projet et fournit des conseils aux utilisateurs souhaitant soumettre du code sensible du point de la sécurité ou un feedback qui ne doit pas être divulgué publiquement avant d’avoir été traité.

Découvrez-en davantage sur la configuration de votre projet pour des contributions saines.

Importation de votre projet dans GitHub

Une fois que vous avez préparé votre dépôt GitHub pour la migration, accédez à l’onglet Code de celui-ci. Utilisez l’option Import code pour spécifier le dépôt source.

Screenshot of importing code to a GitHub repository.

L’outil GitHub Migrator s’occupera du reste.

Screenshot of the GitHub Migrator tool.