1. Le problème sans contrôle de version : pourquoi se contenter de copier des fichiers est une mauvaise idée
Commençons par une situation de la vie courante. Imaginez que vous travaillez sur votre projet Java. Tout se passe bien jusqu’au moment des « expérimentations ». Vous décidez de changer quelque chose, mais vous avez peur de casser la version stable. Que faire ? Bien sûr, copier le projet !
Au final, de tels chefs-d’œuvre apparaissent sur votre disque :
MyProject/
├── Main.java
├── Main_backup.java
├── Main_final.java
├── Main_final2.java
├── Main_tochno_final.java
├── Main_tochno_tochno_final.java
Ça vous parle ? Et maintenant, imaginez qu’un ami a rejoint le projet. Lui aussi aime copier les fichiers — mais à sa manière. Comment savoir où se trouve la version la plus récente et fonctionnelle ? Comment savoir qui a changé quoi ? Comment tout rétablir si l’expérience a échoué ?
Sans contrôle de version :
- Il est facile de perdre ou de mélanger du code fonctionnel.
- Impossible de « revenir » à une ancienne version.
- Difficile de travailler à deux ou à trois.
- Du chaos et la peur d’expérimenter.
Ce sont précisément ces problèmes que résolvent les systèmes de contrôle de version — tels que Git.
2. Pourquoi un développeur a-t-il besoin de Git ?
Git est un puissant système de gestion de versions, utilisé pour suivre les modifications du code source lors du développement logiciel. Il permet aux développeurs de conserver différentes versions des fichiers et de coordonner le travail de plusieurs personnes sur un même projet.
Concepts clés de Git :
Dépôt
Un dépôt (ou « repo ») est l’endroit où est conservée toute l’histoire du projet, y compris toutes les modifications et versions des fichiers.
Commits
commit est un état enregistré du projet. Chaque commit dans Git contient des informations sur les modifications apportées au projet, par qui et quand. Les commits forment l’historique du projet et permettent de revenir à n’importe quelle version précédente.
gitGraph
commit id: "1"
commit id: "2"
commit id: "3"
commit id: "4"
commit id: "5"
commit id: "6"
Chaque commit est un « instantané » du projet, qui succède au précédent, formant un historique séquentiel des modifications.
Branches
branch est une ligne de développement indépendante. Par défaut, Git crée la branche main. Vous pouvez créer de nouvelles branches pour développer de nouvelles fonctionnalités ou des corrections, puis les fusionner dans la branche principale.
gitGraph
commit id: "1"
commit id: "2"
branch develop
commit id: "3"
commit id: "4"
commit id: "5"
checkout main
commit id: "6"
commit id: "7"
merge develop
commit id: "8"
commit id: "9"
À partir de la branche principale main, une branche develop dérive pour un développement en parallèle. Une fois le travail terminé, les changements de develop sont fusionnés de nouveau dans main.
3. Commandes Git de base (ce qui se passe sous le capot)
Ci-dessous se trouve la liste des principales commandes pour utiliser Git via le terminal. Il est important de comprendre quelles commandes sont à la base de toutes les opérations. Cependant, nous adopterons une approche GUI et apprendrons à effectuer toutes ces actions à l’aide de l’interface graphique d’IntelliJ IDEA. Considérez ces commandes comme ce qui se passe « sous le capot ».
| Commande | Description |
|---|---|
git init |
Initialise un nouveau dépôt Git dans le répertoire courant. |
git clone |
Clone un dépôt depuis une URL vers un nouveau répertoire. |
git add |
Ajoute des fichiers à l’index pour le prochain commit. |
git commit |
Enregistre les changements préparés dans le dépôt. |
git push |
Envoie les changements du dépôt local vers le dépôt distant. |
git pull |
Met à jour la branche courante avec la dernière version depuis le dépôt distant. |
git branch |
Affiche, crée ou supprime des branches. |
git merge |
Fusionne les changements de la branche indiquée dans la branche courante. |
Ces commandes constituent les outils essentiels de Git, permettant de gérer les modifications du code, les branches et les fusions dans des projets de toute taille.
sequenceDiagram
participant Répertoire de travail
participant Zone d'index (staging)
participant Dépôt local
participant Dépôt distant
Répertoire de travail ->> Zone d'index (staging): git add (Préparer)
Zone d'index (staging) ->> Dépôt local: git commit (Enregistrer localement)
Dépôt local ->> Dépôt distant: git push (Envoyer sur le serveur)
Dépôt distant ->> Répertoire de travail: git pull (Récupérer les mises à jour)
4. Trois emplacements de stockage du code
Lorsque vous utiliserez un système de contrôle de version pour votre code, celui-ci sera, grossièrement, stocké à trois endroits :
1. Dépôt distant
C’est un emplacement centralisé pour stocker votre code, généralement hébergé sur des services tels que GitHub, GitLab ou Bitbucket. Ils fournissent un stockage centralisé du code et constituent la base de la collaboration. Le dépôt distant sert de point d’intégration pour l’automatisation des processus tels que la compilation, les tests et le déploiement des applications.
2. Dépôt local
Le dépôt local est votre copie personnelle du code, stockée sur votre ordinateur. Dans ce dépôt, vous pouvez effectuer toutes les opérations Git (commits, branchements, fusions) sans connexion Internet.
3. Répertoire de travail
Le répertoire de travail sur votre ordinateur contient les fichiers actuels du projet sur lesquels vous travaillez en ce moment. C’est l’endroit où vous pouvez voir et modifier les fichiers, ajouter de nouvelles fonctionnalités ou corriger des bugs.
Ensemble, ces composants fournissent une infrastructure puissante pour la gestion du code source, permettant aux développeurs de maîtriser l’historique du projet et de collaborer.
5. GitHub — votre portfolio
GitHub est une plateforme web de premier plan pour l’hébergement de code source, utilisant le système de contrôle de versions Git. Fondée en 2008, elle est rapidement devenue l’un des outils clés pour les développeurs du monde entier.
GitHub permet aux utilisateurs de créer des dépôts pour gérer leurs projets, contrôler et suivre les modifications du code et collaborer avec d’autres développeurs. Pour un développeur moderne, un profil GitHub est un élément important du portfolio à présenter à de potentiels employeurs.
6. Créer votre premier dépôt sur GitHub
Étape 1. Rendez-vous sur https://github.com et inscrivez-vous.
Étape 2. Cliquez sur le bouton New repository pour créer un nouveau dépôt.
Étape 3. Définissez les paramètres du dépôt :
- Nom du dépôt : choisissez un nom explicite.
- Public ou privé : pour les projets d’apprentissage, il est préférable de choisir « Public » afin qu’il soit visible par d’autres.
- Add a README file: cochez absolument cette case. Le README est la « vitrine » de votre projet.
- Add .gitignore: cliquez sur la liste déroulante et choisissez un modèle pour votre langage.
- Choose a license: peut être ignoré.
- Cliquez sur
Create repository.
Étape 4. Félicitations, votre premier dépôt distant est créé !
7. Installation et configuration de Git
Bien que l’on puisse apprendre les bases de Git via des commandes en console (comme montré dans la vidéo), au quotidien 99% des développeurs utilisent surtout les outils pratiques intégrés à l’environnement de développement. Notre objectif est de vous apprendre à travailler comme les professionnels.
L’interface Git dans toutes les IDE modernes de JetBrains — qu’il s’agisse d’IntelliJ IDEA pour Java/Kotlin, de Rider pour C# ou de PyCharm pour Python — est quasiment identique. Cela signifie qu’en apprenant à utiliser Git dans un environnement, vous pourrez facilement appliquer ces compétences dans n’importe quel autre. C’est pourquoi nous utiliserons IntelliJ IDEA comme exemple universel. Tout ce que vous verrez ici aura la même apparence et fonctionnera de la même manière dans votre IDE préférée.
Pour utiliser Git sur votre ordinateur, il faut d’abord l’installer. Si vous utilisez IntelliJ IDEA, elle vous proposera très probablement d’installer Git automatiquement s’il n’est pas trouvé sur le système. Nous vous recommandons d’accepter cette proposition — c’est la voie la plus simple.
Fermez le projet en cours en choisissant File > Close Project, puis cliquez sur Clone Repository.
Si vous souhaitez l’installer manuellement, utilisez le site officiel : https://git-scm.com/downloads.
8. Un peu d’histoire : main vs master
Autrefois, la branche par défaut dans Git s’appelait master. Cependant, en 2020, la communauté des développeurs et les plus grandes plateformes, y compris GitHub, sont passées à un terme plus neutre — main.
C’est important à savoir, car dans certains anciens articles ou projets vous pouvez encore rencontrer la mention de la branche master. Dans nos cours et dans les projets modernes, la branche principale sera toujours main.
Pour en savoir plus sur la transition vers main, consultez les liens suivants :
GO TO FULL VERSION