Table des matières
- Introduction
- 1. Qu’est-ce qu’une branche Git ?
- 2. Reprendre le projet existant
- 3. Afficher les branches avec git branch
- 4. Créer une nouvelle branche
- 5. Changer de branche avec git switch
- 6. Créer une branche et basculer dessus en une seule commande
- 7. Travailler sur notre nouvelle branche
- 8. Ajouter du contenu dans le nouveau fichier
- 9. Ajouter et enregistrer le nouveau fichier
- 10. Vérifier l’historique de la branche
- 11. Revenir sur la branche main
- 12. Que devient contact.html ?
- 13. Visualiser les branches et les commits
- 14. Afficher de nouveau toutes les branches locales
- 15. Supprimer une branche
- 16. Pourquoi utiliser des branches ?
- Conclusion
Introduction
Dans les tutoriels précédents, nous avons appris à créer un dépôt Git local, à enregistrer les modifications d’un projet avec des commits, à envoyer ce projet sur GitHub avec git push et à récupérer un dépôt avec git clone et git pull.
Jusqu’à présent, nous avons principalement travaillé sur une seule branche : la branche main.
Cependant, lorsqu’un projet évolue, il peut être utile de travailler sur une nouvelle fonctionnalité sans modifier directement la version principale du projet.
C’est précisément le rôle des branches Git.
Dans ce tutoriel, nous allons découvrir :
- ce qu’est une branche Git ;
- comment afficher les branches d’un dépôt ;
- comment créer une nouvelle branche ;
- comment changer de branche ;
- comment travailler sur un fichier uniquement dans une branche ;
- comment revenir sur la branche main ;
- comment supprimer une branche devenue inutile.
Nous allons continuer à utiliser le dossier mon-projet créé dans les tutoriels précédents.
1. Qu’est-ce qu’une branche Git ?
Une branche permet de créer une ligne de travail indépendante dans un dépôt Git.
Imaginons que notre projet soit actuellement stable sur la branche main.
Nous souhaitons maintenant ajouter une nouvelle page de contact.
Nous pourrions modifier directement main, mais cela signifie que nos modifications seraient effectuées directement sur la version principale du projet.
Avec une branche, nous pouvons créer un espace de travail séparé :
La branche nouvelle-page part du même état que main, mais les nouveaux commits réalisés dessus pourront évoluer indépendamment.
Nous pouvons ainsi travailler sur une fonctionnalité sans modifier immédiatement la branche principale.
Une fois le travail terminé et vérifié, il sera possible de fusionner la branche avec main.
Cette opération sera abordée dans un prochain tutoriel consacré à git merge.
2. Reprendre le projet existant
Nous allons utiliser le même projet que dans les tutoriels précédents.
Placez-vous dans le dossier du projet :
cd mon-projet
Le projet contient déjà plusieurs fichiers, par exemple :
mon-projet/
|-- index.html
|-- README.md
|-- script.js
`-- style.css
Il n’est donc pas nécessaire de recréer le dossier ni d’exécuter à nouveau git init.
Vous pouvez vérifier que vous êtes bien dans un dépôt Git avec :
git status
Git devrait notamment indiquer la branche sur laquelle vous vous trouvez.
Par exemple :
Cela signifie que nous sommes actuellement sur la branche main et qu’aucune modification n’est en attente.
3. Afficher les branches avec git branch
Pour afficher les branches présentes dans le dépôt, utilisez :
git branch
Vous devriez obtenir quelque chose de similaire :
L’astérisque * indique la branche actuellement utilisée.
Dans notre cas, * main signifie que nous travaillons actuellement sur main.
Pour le moment, notre dépôt ne possède qu’une seule branche locale.
4. Créer une nouvelle branche
Nous allons maintenant créer une branche destinée au développement d’une nouvelle page de contact.
Utilisez :
git branch nouvelle-page
Cette commande crée la branche, mais ne nous fait pas automatiquement basculer dessus.
Vérifiez les branches :
git branch
Nous obtenons maintenant :
La branche nouvelle-page existe bien, mais l’astérisque se trouve toujours devant main.
Nous travaillons donc encore sur la branche principale.
5. Changer de branche avec git switch
Pour passer sur notre nouvelle branche, utilisons :
git switch nouvelle-page
Git devrait afficher :
Vérifiez à nouveau :
git branch
Cette fois :
L’astérisque se trouve maintenant devant nouvelle-page.
Toutes les modifications et tous les commits que nous allons réaliser seront donc associés à cette branche.
6. Créer une branche et basculer dessus en une seule commande
Nous venons d’utiliser deux commandes :
git branch nouvelle-page
git switch nouvelle-page
Git permet également de créer une branche et de basculer immédiatement dessus.
La syntaxe est :
git switch -c nom-de-la-branche
Par exemple :
git switch -c test
Cette commande est équivalente à :
git branch test
git switch test
Pour revenir sur notre branche de travail :
git switch nouvelle-page
Si vous avez créé la branche test uniquement pour essayer la commande, nous la supprimerons plus tard.
7. Travailler sur notre nouvelle branche
Nous allons maintenant effectuer une vraie modification uniquement sur nouvelle-page.
Pour cet exemple, nous allons créer un nouveau fichier contact.html.
Ce fichier n’existe pas encore dans notre projet : il faut donc le créer maintenant.
Sous Linux, utilisez :
touch contact.html
Vérifiez les fichiers présents :
ls
Nous avons maintenant, par exemple :
Le fichier contact.html existe sur notre branche de travail.
8. Ajouter du contenu dans le nouveau fichier
Ouvrez maintenant contact.html avec votre éditeur de texte nano ou gedit.
Ajoutez par exemple :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Contact</title>
</head>
<body>
<h1>Nous contacter</h1>
<p>Bienvenue sur notre page de contact.</p>
</body>
</html>
Enregistrez le fichier.
Git détecte maintenant qu’un nouveau fichier a été créé.
Vérifiez avec :
git status
Vous devriez voir contact.html dans les fichiers non suivis :
Le fichier existe dans notre dossier, mais il n’a pas encore été ajouté à l’historique Git.
9. Ajouter et enregistrer le nouveau fichier
Ajoutons le fichier à la zone de préparation :
git add contact.html
Vérifiez :
git status
Git indique maintenant que le fichier est prêt à être enregistré dans un commit.
Créons le commit :
git commit -m "Ajout de la page contact"
Notre branche nouvelle-page possède maintenant un commit qui n’existe pas sur main.
Nous pouvons représenter la situation ainsi :
Le commit D correspond ici à l’ajout de contact.html.
10. Vérifier l’historique de la branche
Pour afficher rapidement l’historique :
git log --oneline
Vous devriez voir votre nouveau commit en haut de la liste :
Ce commit appartient actuellement à l’historique de nouvelle-page.
Nous allons maintenant voir ce qui se passe lorsque nous retournons sur main.
11. Revenir sur la branche main
Avant de changer de branche, vérifiez que vos modifications ont bien été enregistrées :
git status
Nous voulons obtenir :
Revenez ensuite sur main :
git switch main
Git indique :
Vérifiez :
git branch
Nous avons maintenant :
Nous sommes de nouveau sur la branche principale.
12. Que devient contact.html ?
Regardez maintenant les fichiers présents dans le dossier :
ls
Vous constaterez que contact.html n’est plus présent.
Pourquoi ?
Le fichier n’a pas été supprimé de Git.
Il appartient simplement à un commit présent sur la branche nouvelle-page, mais pas sur main.
Lorsque nous exécutons :
git switch nouvelle-page
Git remet notre dossier de travail dans l’état correspondant à cette branche.
Vérifiez :
ls
Le fichier contact.html est de nouveau présent.
Puis revenez sur main :
git switch main
Le fichier disparaît à nouveau.
C’est l’un des principes essentiels des branches Git : chaque branche peut représenter un état différent du projet.
13. Visualiser les branches et les commits
Git permet d’obtenir une représentation plus claire de l’historique avec :
git log --oneline --graph --all
Vous pourrez voir les différents commits et les branches associées.
Une représentation simplifiée pourrait ressembler à :
Avec des projets comportant davantage de branches et de commits, l’option --graph devient particulièrement utile pour comprendre l’évolution du dépôt.
14. Afficher de nouveau toutes les branches locales
À tout moment, vous pouvez utiliser :
git branch
Dans notre exemple :
Cette commande permet donc à la fois de connaître les branches disponibles et d’identifier celle actuellement utilisée grâce à l’astérisque.
15. Supprimer une branche
Une branche peut être supprimée lorsqu’elle n’est plus nécessaire.
La commande est :
git branch -d nom-de-la-branche
Cependant, dans notre exemple, nous ne devons pas encore supprimer nouvelle-page.
Son commit contenant contact.html n’a pas été fusionné avec main.
Si vous essayez :
git branch -d nouvelle-page
Git peut refuser la suppression afin d’éviter de perdre facilement un travail qui n’a pas encore été fusionné.
C’est une protection utile.
Nous conserverons donc nouvelle-page pour le prochain tutoriel, dans lequel nous apprendrons à récupérer son travail dans main avec git merge.
16. Pourquoi utiliser des branches ?
Les branches deviennent particulièrement utiles lorsque plusieurs modifications doivent être réalisées sur un projet.
Par exemple :
main
??? nouvelle-page
??? correction-menu
??? nouveau-design
Chaque branche peut être consacrée à une tâche précise.
Cela permet notamment de :
- conserver une branche principale stable ;
- développer une fonctionnalité séparément ;
- tester une modification avant de l’intégrer ;
- travailler sur plusieurs fonctionnalités indépendamment ;
- faciliter le travail à plusieurs sur un même projet.
Une fois une fonctionnalité terminée, son travail peut être intégré à main.
Conclusion
Dans ce tutoriel, nous avons découvert le fonctionnement des branches Git.
Nous avons appris à afficher les branches avec git branch, à créer une nouvelle branche :
git branch nouvelle-page
puis à basculer dessus avec :
git switch nouvelle-page
Nous avons ensuite créé le fichier contact.html et enregistré cette modification uniquement dans notre nouvelle branche.
En revenant sur main, nous avons constaté que ce fichier n’était pas présent. En retournant sur nouvelle-page, il réapparaissait.
Cette manipulation permet de comprendre concrètement l’intérêt des branches : travailler sur différentes versions d’un projet sans modifier immédiatement la branche principale.
Notre projet possède maintenant deux historiques qui ont commencé à évoluer séparément.
Dans le prochain tutoriel, nous verrons comment réunir ces modifications en apprenant à fusionner une branche avec git merge.
Commentaires
Laisser un commentaire
Soyez le premier à commenter cet article !