📘 Chapitre – Cloner, ignorer, gérer les fichiers

1. 🎯 Objectif pédagogique

Savoir cloner un dépôt GitHub, créer un fichier .gitignore pour exclure certains fichiers et gérer correctement les fichiers versionnés.

2. 📚 Concepts abordés

  • Commande git clone
  • Récupérer un projet distant en local
  • Créer et configurer .gitignore
  • Bonnes pratiques pour ignorer des fichiers sensibles ou inutiles
  • Gestion des fichiers supprimés ou renommés (git rm, git mv)

3. 🧠 Explication théorique

  • Cloner un dépôt signifie copier un projet GitHub (ou autre serveur) sur votre machine :

    git clone https://github.com/utilisateur/mon-projet.git
    
  • .gitignore : fichier spécial qui indique à Git quels fichiers ne pas suivre (ex. fichiers temporaires, mots de passe, dépendances locales). Exemple de .gitignore :

    node_modules/
    .env
    *.log
    
  • Gestion des fichiers :

    • git rm fichier : supprime un fichier du suivi Git.
    • git mv ancien nouveau : renomme un fichier tout en gardant son historique.

4. 🛠 Tutoriel pratique

Résumé du travail : Cloner un dépôt GitHub et configurer un .gitignore.

Étape 1 : Cloner un dépôt distant

git clone https://github.com/VotreNom/mon-projet.git
cd mon-projet

Étape 2 : Créer un fichier .gitignore

echo "node_modules/" >> .gitignore
echo ".env" >> .gitignore
echo "*.log" >> .gitignore

Puis vérifier :

git status

Les fichiers listés dans .gitignore ne sont plus suivis.

Étape 3 : Supprimer un fichier du suivi

git rm fichier_inutile.txt
git commit -m "Suppression de fichier_inutile.txt"

Étape 4 : Renommer un fichier

git mv ancien_nom.txt nouveau_nom.txt
git commit -m "Renommage de ancien_nom.txt en nouveau_nom.txt"

Étape 5 : Vérifier les changements

git log --oneline

5. 🧾 Résumé et points-clés

  • git clone copie un dépôt distant en local.
  • .gitignore empêche le suivi de fichiers inutiles ou sensibles.
  • git rm et git mv permettent de gérer les fichiers dans l’historique Git.
  • Maintenir un .gitignore clair aide à éviter de publier des données confidentielles.