Exercice — Créer et gérer un dépôt Git

Partie 1 — Premiers commits

Consignes

  1. Créez un nouveau dossier exercice-git et initialisez-y un dépôt Git
  2. Créez un fichier README.md avec le titre du projet
  3. Faites un premier commit
  4. Ajoutez du contenu au README et faites un deuxième commit
  5. Consultez l’historique avec git log

Solution

# Étape 1
mkdir exercice-git && cd exercice-git
git init

# Étape 2
echo "# Mon exercice Git" > README.md

# Étape 3
git add README.md
git commit -m "feat: ajout du README"

# Étape 4
echo "nCe projet est un exercice pour apprendre Git." >> README.md
git add README.md
git commit -m "docs: ajout de la description dans le README"

# Étape 5
git log --oneline

Partie 2 — Travailler avec les branches

Consignes

  1. Créez une branche feature/ajout-page
  2. Basculez sur cette branche
  3. Créez un fichier page.html avec du contenu basique
  4. Faites un commit sur cette branche
  5. Revenez sur main et fusionnez la branche

Solution

# Étape 1 & 2
git checkout -b feature/ajout-page

# Étape 3
cat > page.html << 'EOF'
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>Ma Page</title>
</head>
<body>
    <h1>Bienvenue</h1>
    <p>Ceci est ma première page versionnée avec Git.</p>
</body>
</html>
EOF

# Étape 4
git add page.html
git commit -m "feat: ajout de page.html"

# Étape 5
git checkout main
git merge feature/ajout-page

Vérification

# Vérifiez que page.html est bien sur main
ls
# README.md  page.html

# Vérifiez l'historique
git log --oneline --graph
# *   abc1234 Merge branch 'feature/ajout-page'
# |
# | * def5678 feat: ajout de page.html
# |/
# * 9876abc docs: ajout de la description dans le README
# * 1234def feat: ajout du README

Partie 3 — Simuler un conflit

Consignes

  1. Sur main, modifiez la première ligne de README.md
  2. Créez une branche feature/autre-titre depuis le commit précédent
  3. Modifiez aussi la première ligne de README.md (différemment)
  4. Essayez de fusionner → observez le conflit
  5. Résolvez le conflit manuellement et terminez la fusion

Solution

# Étape 1 — Modifier sur main
echo "# Exercice Git - Version Finale" > README.md
git add README.md
git commit -m "docs: mise à jour du titre sur main"

# Étape 2 & 3 — Créer une branche et modifier
git checkout -b feature/autre-titre HEAD~1
echo "# Super Exercice Git" > README.md
git add README.md
git commit -m "docs: nouveau titre sur la branche"

# Étape 4 — Tenter la fusion
git checkout main
git merge feature/autre-titre
# CONFLICT (content): Merge conflict in README.md

# Étape 5 — Ouvrir README.md et résoudre le conflit
# Le fichier contiendra :
# <<<<<<< HEAD
# # Exercice Git - Version Finale
# =======
# # Super Exercice Git
# >>>>>>> feature/autre-titre

# Choisissez la version souhaitée, puis :
git add README.md
git commit -m "fix: résolution du conflit de titre"

Récapitulatif des commandes utilisées

Commande Usage
git init Initialiser un dépôt
git add Ajouter des fichiers à la staging area
git commit -m Créer un commit
git log --oneline --graph Voir l’historique
git checkout -b Créer et basculer sur une branche
git merge Fusionner une branche
git status Vérifier l’état du dépôt