Déploiement
Déploiement • Chapitre 10 : Déploiement avec Git et GitHub

Gestion du code source avec Git

Git est la colonne vertébrale des architectures logicielles modernes. Maîtrisez le cycle de travail local, le rôle crucial du fichier .gitignore pour la sécurité et la traçabilité des livraisons en production.

📜
Historique Immuable

Chaque commit génère un hash SHA-1/SHA-256 scellant l'état exact des fichiers à cet instant.

🛡️
Filtre .gitignore

Empêche absolument la fuite de secrets (.env), de caches et des volumineux node_modules.

🌿
Branches Locales

Permet de développer et tester de nouvelles fonctionnalités en isolation totale de la branche de production.

🎯
Staging Area (Index)

Zone tampon pour sélectionner avec précision atomique les modifications prêtes à être validées.

git-init-and-ignore.sh
# 1. Initialiser le dépôt Git et vérifier la branche par défaut
$ git init -b main
Initialized empty Git repository in /var/www/mon-projet/.git/

# 2. Configurer le .gitignore STRICT de production
$ cat << 'EOF' > .gitignore
node_modules/
.env*
!.env.example
dist/
build/
.cache/
npm-debug.log*
.DS_Store
EOF

# 3. Vérifier les fichiers traqués et effectuer le premier commit propre
$ git status
$ git add .
$ git commit -m "feat: initial commit ready for production deployment"
[main (root-commit) 7f3a9bc] feat: initial commit ready for production deployment
 24 files changed, 1420 insertions(+)

Guide Approfondi & Architecture Système

1. L'Analogie de la Machine à Remonter le Temps et du Journal de Bord

Pour concevoir Git comme un système de déploiement :
  • Le Working Directory (Dossier de travail) : C'est votre atelier d'artisan en cours de création, où des copeaux tombent par terre.
  • La Staging Area (Zone de transit) : C'est le plateau d'emballage où vous disposez uniquement les pièces polies prêtes pour le client.
  • Le Commit : C'est la boîte scellée avec numéro de série unique (hash SHA). Impossible d'en modifier le contenu sans briser le sceau.
  • Le fichier .gitignore : C'est le videur à l'entrée de la boîte qui interdit formellement l'accès aux clés secrètes et aux déchets de fabrication.

2. Les Dangers d'un .gitignore Oublié en Production

La première cause de piratage de projets web est l'oubli du fichier .env dans Git :
Règle d'or absolue : Ne commitez JAMAIS de clés d'API (Stripe, OpenAI, mots de passe de BDD). Une fois poussé sur un dépôt GitHub public, des robots automatisés scannent le commit en moins de 30 secondes et vident vos crédits !

Tableau Récapitulatif : Les 3 États d'un Fichier dans Git

État GitEmplacement TechniqueImpact sur le Déploiement
Modifié (Modified)Système de fichiers local (disque)Non sauvegardé dans l'historique, ignoré par la CI/CD
Indexé (Staged)Index Git (.git/index)Prêt à être scellé dans la prochaine version diffusable
Validé (Committed)Base d'objets Git (.git/objects)Historique permanent, déclencheur des futurs pipelines de production