Git & GitHub : Initialisation
Zoom sur l'installation, la configuration et l'initialisation d'un dépôt Git avant de plonger dans le monde du versioning.
Installation de Git
Que vous soyez sur Windows, MacOS ou encore Linux, vous pouvez télécharger Git depuis le site officiel en choisissant la méthode adaptée à votre OS et à vos envies (ligne de commande, fichier binaire…).
Une fois l’installation terminée, vérifiez que Git est bien opérationnel sur votre machine en ouvrant un terminal et en tapant la commande suivante :
git --version
Configuration de Git
La configuration de Git est un aspect essentiel de son utilisation, car elle permet de personnaliser le comportement de Git en fonction de vos préférences et de votre environnement de travail.
Git propose 2 types de configurations, vous permettant de spécifier des paramètres à différentes échelles :
- Configuration Globale : à l’échelle de l’utilisateur. Il s’agit d’une configuration partagée par tous les dépôts Git sur la machine de l’utilisateur.
- Configuration Locale : à l’échelle du projet (d’un dépôt spécifique). Il s’agit d’une configuration propre à un projet (elle est stockée dans le répertoire
📂 .git
du projet).
Les configurations globales et locales vous offrent la flexibilité nécessaire pour adapter Git à vos besoins spécifiques.
Pour configurer un projet Git, on utilise une série de commandes commençant par git config
.
Configuration globale
La configuration globale s’applique à l’ensemble du système et est utilisée par tous les dépôts Git sur la machine de l’utilisateur. Elle peut être définie en utilisant la commande git config
, à laquelle on ajoute le flag --global
.
Lorsque vous commencez à utiliser Git pour la toute première fois sur votre machine, il est d’usage de configurer son identité à travers :
- Un nom
- Un email
git config --global user.name "Votre Nom"
git config --global user.email "[email protected]"
Ces informations permettront à Git d’identifier l’auteur d’une modification et ainsi rendre l’historique plus clair et à faciliter la collaboration avec d’autres développeurs.
Voici par exemple un extrait de retour de la commande git config --list
:
user.name=Thibaud d'Arros
[email protected]
core.repositoryformatversion=0
core.filemode=false
...
Vous pouvez également configurer d’autres paramètres globaux tels que :
- L’éditeur par défaut pour les messages de commit (Visual Studio Code, Brackets, Sublime Text, etc.)
- Le nombre de commits affichés dans la sortie de certaines commandes
- L’outil de différenciation à utiliser lors de la résolution des conflits de fusion
- Les URL des dépôts distants
- Des alias de commandes
- Etc.
Configuration locale
À l’inverse de la configuration globale, la configuration locale s’applique à un dépôt Git spécifique. Elle est stockée dans le répertoire 📂 .git
du dépôt, ce qui signifie que chaque projet Git peut avoir ses propres paramètres de configuration.
Pour définir une configuration spécifique à un projet, on utilise la commande git config
, sans spécifier l’option --global
.
Les mêmes commandes peuvent alors être saisies.
git config user.name "Votre Nom"
git config user.email "[email protected]"
Si vous souhaitez utiliser une identité différente pour un projet spécifique, vous pouvez configurer le nom d’utilisateur et l’adresse email localement dans le répertoire du projet.
Qu’est-ce qu’un dépôt Git ?
Avant d’initialiser un projet avec Git, il est important de comprendre le concept de dépôt Git.
Un dépôt Git est constitué de 2 composantes :
- Le code source contenant le projet
- Un dossier caché nommé
📂 .git
présent à la racine du répertoire d’un projet, dans lequel Git enregistre l’historique des modifications du projet. Il agit comme une base de données qui stocke toutes les versions passées et présentes des fichiers du projet. Cela permet de suivre l’évolution du projet au fil du temps, de revenir à des versions antérieures si nécessaire et de collaborer avec d’autres développeurs.
Pour bien comprendre la notion de dépôt Git, il est important de distinguer 2 types de dépôts : les dépôts locaux et le dépôt distant.
Dépôts locaux
Un dépôt local est situé sur votre propre machine, il représente le répertoire du projet sur lequel vous travaillez et que vous gérez avec Git.
Il contient donc le code source ainsi que toutes les informations nécessaires pour suivre l’historique du projet.
Lorsqu’un développeur met à jour le code source d’un projet, le dépôt local enregistre ces modifications dans le répertoire 📂 .git
.
Les dépôts locaux permettent à chaque développeur de travailler de manière autonome et de synchroniser leur travail avec un dépôt distant.
Dépôt distant
Le dépôt distant, quant à lui, est situé sur des serveurs ou des plateformes de collaboration telles que GitHub, GitLab ou encore Bitbucket.
Ils servent à centraliser le code source d’un projet. Cette centralisation confère de nombreux avantages :
- Une sauvegarde du code source
- Un historique complet du projet
- Le partage du code avec d’autres développeurs
Le dépôt distant va régulièrement être intégralement copié sur la machine locale des développeurs du projet afin qu’ils puissent contribuer à son développement, depuis une version à jour.
Le dépôt distant synchronise et maintient une cohérence entre les différents dépôts locaux des contributeurs.
Pour cela, Git permet aux développeurs :
- D’envoyer/de pousser (
push
) leurs modifications du dépot local vers le dépôt distant. - De récupérer/de tirer (
pull
) les modifications des autres contributeurs, centralisées sur le dépôt distant, vers leur dépôt local.
Nous détaillerons les concepts de push
/pull
dans un prochain chapitre.
En résumé, un dépôt Git, qu’il soit local ou distant, est le cœur de tout projet géré par Git.
Il conserve l’historique des modifications du projet, permet le suivi des versions, la collaboration et la gestion de code. Les dépôts locaux sont utilisés par les développeurs pour travailler individuellement, tandis que les dépôts distants sont utilisés pour la collaboration et le partage du code avec d’autres développeurs.
Il y a deux cas de figure à considérer lorsque l’on travaille avec Git :
- Le projet n’a pas encore été versionné : il faut alors initialiser un dépôt Git en local et le synchroniser avec le serveur distant.
- Le projet a déjà été versionné : c’est le cas lorsqu’on souhaite contribuer à un projet existant (projet Open Source, projet d’entreprise…). On fera alors ce qu’on appelle un « clone » du repository distant.
Initialisation des dépôts Git
Projet jamais versionné
1. Initialiser le repo local
Lorsque vous souhaitez versionner votre projet avec Git, la première chose à faire est d’initialiser un dépôt Git à l’intérieur.
Pour cela, il suffit d’exécuter à la racine de votre projet, la commande :
git init
Cela créera le fameux dossier caché nommé 📂 .git
, qui contiendra toutes les informations de versioning de votre projet.
2. Créer le repo distant
Il est désormais temps de se rendre sur la plateforme web d’hébergement utilisée pour centraliser le code source dans un dépôt distant.
Avant toute chose inscrivez-vous ou connectez-vous à GitHub.
Pour créer un dépôt distant sur GitHub, suivez ces étapes :
- Accédez à la page des dépôts : Rendez-vous sur la page listant vos dépôts à l’URL
https://github.com/<username>?tab=repositories
, où<username>
est votre nom d’utilisateur GitHub. - Créez un nouveau dépôt : Cliquez sur le bouton
New
pour créer un nouveau dépôt. - Remplissez les détails du dépôt :
- Donnez un nom à votre dépôt dans le champ
Repository name
(je vous recommande de saisir le même que celui de votre projet en local). - Ajoutez une description facultative dans le champ
Description
. - Choisissez la visibilité de votre dépôt (
public
ouprivate
). - Sélectionnez les options de licence, la création ou pas d’un
readme.md
ou d’un.gitignore
selon vos besoins.
- Donnez un nom à votre dépôt dans le champ
- Créez le dépôt : Cliquez sur le bouton
Create repository
pour finaliser la création.
3. Synchroniser le repo local et distant
Une fois le dépôt distant créé, il va être possible de le connecter avec notre dépôt local.
Pour cela :
- Accédez à la page du dépôt : Rendez-vous sur la page dédiée à votre dépôt à l’URL
https://github.com/<username>/<repository>
, où<username>
est votre nom d’utilisateur GitHub et<repository>
le nom de votre repository fraîchement créé. - Copiez l’URL du dépôt : Cliquez sur le bouton
Code
et copiez l’URL visible dans la tab HTTPS. Cette URL a le formathttps://github.com/<username>/<repository>.git
. - Synchronisez les dépôts : Utilisez la commande suivante dans votre terminal :
git remote add origin <url_repository>
Remplacez <url_repository>
par l’URL que vous avez précédemment copiée. Cette commande lie votre dépôt local avec le dépôt distant sur GitHub.
Projet déjà versionné
Cloner un dépôt
Lorsque vous souhaitez récupérer un dépôt existant hébergé sur une plateforme collaborative comme GitHub par exemple, la démarche est quelque peu différente dans la mesure où vous ne possédez à ce stade pas de dossier contenant le code source du projet.
Il s’agit donc dans un premier temps de cloner le code source.
🤔 Mais où trouver un dépôt à cloner ?
- Rendez-vous sur la page d’accueil de GitHub
- Taper un mot-clé qui vous inspire dans le moteur de recherche (par exemple :
slider
) - Cliquer sur le nom du projet
- Une fois sur la page du repository, vous voyez apparaître les dossiers/fichiers constituant le code source du projet.
- Cliquer sur le bouton
Code
. - Coller la ligne au format
https://github.com/<username>/<depot>.git
. Il s’agit de l’URL du repository.
Pour cloner un projet, on utilise la commande :
git clone <url_repository>
Voici par exemple la ligne de commande permettant de cloner le framework JS React, développé par les équipes de Facebook :
git clone https://github.com/facebook/react.git
readme.md : la notice du projet
Plus qu’une bonne pratique, la création d’un fichier 📄 readme.md
à la racine du projet est une habitude à prendre dès aujourd’hui.
Ce fichier sert à fournir des informations essentielles sur le projet, telles que :
- Son objectif
- Son fonctionnement
- Les instructions d’installation et d’utilisation
- D’autres informations pertinentes pour les contributeurs et les utilisateurs potentiels.
Bref, en un mot, c’est la notice du projet.