# Tutoriel Git pour Débutants Absolus
Niveau : Master 1 DFS Corte
Mode : Console Bash*
---
## Introduction à Git
Git est un système de contrôle de version distribué qui permet de suivre les modifications apportées aux fichiers et de collaborer efficacement avec d'autres développeurs. Ce tutoriel est conçu pour les débutants absolus et vous guidera à travers les bases de Git en utilisant la console Bash. Nous utiliserons des fichiers de recettes de cuisine pour les exercices pratiques.
---
## Table des Matières
1. [Configuration Initiale](#configuration-initiale)
2. [Création d'un Nouveau Dépôt Git](#création-dun-nouveau-dépôt-git)
3. [Les Bases de Git](#les-bases-de-git)
- [Vérifier l'État du Dépôt](#vérifier-létat-du-dépôt)
- [Ajouter des Fichiers au Staging](#ajouter-des-fichiers-au-staging)
- [Committer les Changements](#committer-les-changements)
- [Visualiser l'Historique des Commits](#visualiser-lhistorique-des-commits)
4. [Gestion des Branches](#gestion-des-branches)
- [Créer une Nouvelle Branche](#créer-une-nouvelle-branche)
- [Changer de Branche](#changer-de-branche)
- [Fusionner des Branches](#fusionner-des-branches)
- [Résoudre les Conflits de Fusion](#résoudre-les-conflits-de-fusion)
5. [Exercices Pratiques](#exercices-pratiques)
- [Exercice 1 : Initialiser un Dépôt et Créer une Recette](#exercice-1-initialiser-un-dépôt-et-créer-une-recette)
- [Exercice 2 : Modifier une Recette et Utiliser `git status`](#exercice-2-modifier-une-recette-et-utiliser-git-status)
- [Exercice 3 : Utiliser `git log` pour Explorer l'Historique](#exercice-3-utiliser-git-log-pour-explorer-lhistorique)
- [Exercice 4 : Travailler avec des Branches](#exercice-4-travailler-avec-des-branches)
- [Exercice 5 : Fusionner des Branches avec Conflits](#exercice-5-fusionner-des-branches-avec-conflits)
- [Exercice 6 : Utiliser `git log` avec Options Avancées](#exercice-6-utiliser-git-log-avec-options-avancées)
6. [Bonnes Pratiques](#bonnes-pratiques)
7. [Ressources Supplémentaires](#ressources-supplémentaires)
---
## Configuration Initiale
Après l'installation, configurez votre nom d'utilisateur et votre adresse e-mail. Ces informations seront associées à vos commits.
```bash
git config --global user.name "Votre Nom"
git config --global user.email "[email protected]"Pour vérifier votre configuration :
git config --listPour initialiser un nouveau dépôt Git dans un répertoire existant :
-
Naviguez vers le répertoire souhaité :
cd /chemin/vers/votre/projet -
Initialisez Git :
git init
Cela crée un sous-répertoire .git contenant tous les fichiers nécessaires au dépôt.
Pour voir les modifications non enregistrées et les fichiers suivis/non suivis :
git statusPour ajouter un fichier spécifique :
git add nom_du_fichierPour ajouter tous les fichiers modifiés :
git add .Pour enregistrer les changements ajoutés au staging avec un message descriptif :
git commit -m "Votre message de commit"Pour afficher l'historique des commits :
git logPour un affichage plus condensé :
git log --onelineLes branches permettent de travailler sur différentes fonctionnalités ou correctifs sans affecter la branche principale.
git branch nom_de_la_branchegit checkout nom_de_la_branchegit checkout -b nom_de_la_branchePour fusionner une branche dans la branche actuelle :
-
Assurez-vous d'être sur la branche cible (par exemple,
master) :git checkout master
-
Fusionnez la branche souhaitée :
git merge nom_de_la_branche
Lors de la fusion, des conflits peuvent survenir si les mêmes lignes de code ont été modifiées différemment dans les branches fusionnées. Git marquera les fichiers en conflit, et il faudra les résoudre manuellement.
-
Identifier les fichiers en conflit :
git status
-
Ouvrir les fichiers en conflit avec
viet résoudre les différences :Les sections en conflit seront marquées comme suit :
<<<<<<< HEAD Contenu de la branche actuelle ======= Contenu de la branche à fusionner >>>>>>> nom_de_la_brancheExemple de résolution :
# Recette de Poulet Rôti ## Ingrédients - 1 poulet entier - 2 cuillères à soupe d'huile d'olive - Sel et poivre - Herbes de Provence + Marinade spéciale ## Instructions 1. Préchauffer le four à 200°C. 2. Frotter le poulet avec l'huile d'olive. 3. Assaisonner avec le sel, le poivre et les herbes. 4. Rôtir pendant 1 heure. -
Ajouter les fichiers résolus au staging :
git add nom_du_fichier
-
Finaliser la fusion :
git commit
-
Créer un Répertoire de Projet
mkdir recettes cd recettes -
Initialiser Git
git init
-
Créer un Fichier de Recette avec
vivi recette_poulet.md
Contenu suggéré :
# Recette de Poulet Rôti ## Ingrédients - 1 poulet entier - 2 cuillères à soupe d'huile d'olive - Sel et poivre - Herbes de Provence ## Instructions 1. Préchauffer le four à 200°C. 2. Frotter le poulet avec l'huile d'olive. 3. Assaisonner avec le sel, le poivre et les herbes. 4. Rôtir pendant 1 heure.
-
Ajouter le Fichier au Staging et Committer
git add recette_poulet.md git commit -m "Ajouter la recette de poulet rôti"
-
Modifier le Fichier avec
vivi recette_poulet.md
Ajoutez une section :
## Temps de Préparation - 15 minutes
-
Vérifier l'État du Dépôt
git status
-
Ajouter les Changements au Staging et Committer
git add recette_poulet.md git commit -m "Ajouter le temps de préparation à la recette de poulet"
-
Afficher l'Historique des Commits
git log
-
Afficher l'Historique en Mode Condensé
git log --oneline
-
Ajouter des Informations Supplémentaires à
git loggit log --graph --decorate --all
-
Créer une Nouvelle Branche pour une Nouvelle Recette
git checkout -b ajouter_recette_pizza
-
Créer un Nouveau Fichier de Recette avec
vivi recette_pizza.md
Contenu suggéré :
# Recette de Pizza Margherita ## Ingrédients - Pâte à pizza - Sauce tomate - Mozzarella - Basilic frais - Huile d'olive ## Instructions 1. Étaler la pâte à pizza sur une plaque. 2. Étaler la sauce tomate sur la pâte. 3. Ajouter la mozzarella. 4. Cuire au four à 220°C pendant 15 minutes. 5. Garnir de basilic frais et d'un filet d'huile d'olive.
-
Ajouter et Committer le Nouveau Fichier
git add recette_pizza.md git commit -m "Ajouter la recette de pizza margherita" -
Retourner à la Branche Principale et Fusionner
git checkout master git merge ajouter_recette_pizza
-
Supprimer la Branche Fusionnée
git branch -d ajouter_recette_pizza
-
Créer une Nouvelle Branche pour Modifier une Recette Existante
git checkout -b modifier_recette_poulet
-
Modifier le Fichier
recette_poulet.mdavecvivi recette_poulet.md
Ajoutez ou modifiez une ligne dans la section Instructions :
5. Laisser reposer le poulet avant de servir.
-
Ajouter et Committer les Changements
git add recette_poulet.md git commit -m "Ajouter une étape de repos à la recette de poulet" -
Retourner à la Branche Principale et Modifier la Même Ligne
git checkout master vi recette_poulet.md
Modifiez la même ligne dans la section Instructions :
5. Servir avec des légumes frais.
-
Ajouter et Committer les Changements
git add recette_poulet.md git commit -m "Ajouter des légumes frais à la recette de poulet" -
Fusionner la Branche avec Conflit dans la Branche Principale
git merge modifier_recette_poulet
Résolution du Conflit :
Ouvrez
recette_poulet.mdavecvi:vi recette_poulet.md
Identifiez et résolvez le conflit marqué par Git :
<<<<<<< HEAD 5. Servir avec des légumes frais. ======= 5. Laisser reposer le poulet avant de servir. >>>>>>> modifier_recette_pouletChoisissez de combiner les deux modifications :
5. Laisser reposer le poulet avant de servir. 6. Servir avec des légumes frais.
-
Ajouter le Fichier Résolu au Staging et Finaliser la Fusion
git add recette_poulet.md git commit -m "Résoudre le conflit de fusion dans recette_poulet.md"
-
Afficher l'Historique des Commits avec Graphique
git log --graph --oneline --all
-
Afficher les Commits avec les Noms des Branches
git log --decorate --oneline
-
Afficher les Différences Entre les Commits
git log -p
-
Limiter le Nombre de Commits Affichés
git log -n 3
-
Afficher les Commits Affectant un Fichier Spécifique
git log -- recette_poulet.md
- Commits Fréquents : Faites des commits réguliers avec des messages clairs et descriptifs pour faciliter le suivi des changements.
- Branches Thématiques : Utilisez des branches pour chaque fonctionnalité ou correctif afin de maintenir la branche principale stable.
- Descriptions Claires : Rédigez des messages de commit explicites pour faciliter la compréhension de l'historique.
- Résolution des Conflits : Prenez le temps de bien comprendre et résoudre les conflits lors des fusions.
- Utilisation de
git log: Explorez régulièrement l'historique des commits pour mieux comprendre l'évolution du projet. - Organisation des Fichiers : Maintenez une structure de répertoire organisée pour vos projets, facilitant ainsi la navigation et la gestion des fichiers.
- Documentation Officielle de Git
- Pro Git Book (Gratuit)
- Git Cheat Sheet
- Tutoriels Git en Français
- Git Immersion
- Try Git (Interactif)