Avez-vous une question? (216) 97 656 803 hajjriadh@gmail.com
NestJS

Versionner un projet NestJS avec Git et GitHub (.gitignore, commits, push)

Cette leçon explique comment versionner un projet NestJS avec Git et le publier sur GitHub : configuration de Git, cycle add / commit / push, contenu du .gitignore (node_modules, dist, .env), rédactio...

0 chapitres 0 QCM Accès gratuit
Versionner un projet NestJS avec Git et GitHub (.gitignore, commits, push)

À propos de ce cours

Cette leçon explique comment versionner un projet NestJS avec Git et le publier sur GitHub : configuration de Git, cycle add / commit / push, contenu du .gitignore (node_modules, dist, .env), rédaction de messages de commit clairs, création du dépôt distant et authentification, branches de fonctionnalité, étiquettes de version, récupération d'un projet avec git clone et npm install, et fichier .env.example.

Objectifs de la leçon

  • Mettre un projet NestJS sous Git et le publier sur GitHub.
  • Savoir ce qui doit et ne doit pas être versionné.
  • Écrire des messages de commit clairs.
  • Travailler avec des branches et des étiquettes de version.
  • Récupérer et lancer un projet depuis GitHub.
Pourquoi versionner dès le premier jour ?
  • Sauvegarde: un ordinateur perdu ou en panne ne fait pas perdre le travail.
  • Historique: on sait ce qui a changé, quand et pourquoi, et on peut revenir en arrière.
  • Travail en équipe: plusieurs personnes modifient le même projet sans s'écraser.
  • Portfolio: vos dépôts GitHub montrent vos compétences aux recruteurs.
Configurer Git (une seule fois par ordinateur)
git config --global user.name "Prénom Nom"
git config --global user.email "adresse@exemple.com"   # celle de votre compte GitHub
git config --global init.defaultBranch main
Le cycle de travail

Cycle Git add commit push

On prépare (add), on valide (commit), on publie (push) ; pull et clone récupèrent le travail.

git status                         # que s'est-il passé ?
git add .                          # préparer toutes les modifications
git commit -m "feat: route GET /version"
git push                           # publier sur GitHub
git log --oneline                  # historique résumé
Ce qui ne doit jamais être versionné

Le .gitignore généré par la CLI exclut déjà l'essentiel. Vérifiez qu'il contient au moins :

# dépendances et code compilé : recréés par npm install / npm run build
node_modules/
dist/

# résultats de tests et journaux
coverage/
*.log

# secrets : mots de passe, clés (chapitre 10)
.env
.env.*
!.env.example

# éditeurs
.idea/

Attention aux secrets: un mot de passe de base de données publié sur GitHub, même supprimé plus tard, reste dans l'historique et peut être récupéré. Le fichier .env ne doit jamais être commité. On publie à la place un .env.example avec des valeurs factices.

Des messages de commit clairs

Un bon message dit ce que fait le commit. La convention Conventional Commits est très répandue :

PréfixeUsageExemple
feat:nouvelle fonctionnalitéfeat: ajout du module stagiaires
fix:correction de bugfix: statut 404 si le stagiaire n'existe pas
docs:documentationdocs: instructions d'installation dans le README
refactor:restructuration sans changement de comportementrefactor: logique déplacée dans le service
test: / chore:tests / maintenancechore: configuration de Prettier

À éviter : "modif", "update", "ça marche". Faites des commits petits et fréquents: un commit = une modification cohérente.

Créer le dépôt GitHub et pousser
  1. Sur github.com/new, créez un dépôt vide portant le nom du projet (sans README, sans .gitignore, sans licence : le projet local les fournit).
  2. Reliez et poussez :
git remote add origin https://github.com/VOTRE-COMPTE/api-formation.git
git branch -M main
git push -u origin main

Lors du premier push, Git demande de vous authentifier. Sous Windows, le gestionnaire d'identifiants installé avec Git ouvre une fenêtre de connexion GitHub. Ailleurs, utilisez un jeton d'accès personnel (GitHub → Settings → Developer settings → Personal access tokens) à la place du mot de passe, ou la commande gh auth login de GitHub CLI.

Les branches

On ne développe pas directement sur main, qui doit toujours fonctionner. On crée une branche par fonctionnalité :

git switch -c feature/module-groupes   # créer la branche et s'y placer
# … travail, commits …
git push -u origin feature/module-groupes
git switch main
git merge feature/module-groupes       # ou une Pull Request sur GitHub

Sur GitHub, une Pull Request permet de relire les modifications d'une branche avant de les fusionner dans main: c'est la pratique standard en entreprise.

Les étiquettes de version (tags)
git tag -a v0.1.0 -m "Première version de l'API"
git push origin v0.1.0

Une étiquette marque une version précise du projet (rendu de TP, mise en production). Elle apparaît dans l'onglet Releases / Tags du dépôt.

Récupérer un projet depuis GitHub
git clone https://github.com/VOTRE-COMPTE/api-formation.git
cd api-formation
npm install            # recrée node_modules
cp .env.example .env   # puis compléter les valeurs
npm run start:dev
Activités

Activité 1 Publier api-formation

  1. Configurez Git (nom, e-mail) si ce n'est pas fait.
  2. Vérifiez le .gitignore du projet api-formation et complétez-le si besoin.
  3. Créez le dépôt sur GitHub et poussez le projet.
  4. Sur GitHub, vérifiez que node_modules et dist n'apparaissent pas.
Voir le corrigé

Si node_modules apparaît sur GitHub, c'est qu'il a été commité avant d'être ignoré. Retirez-le de l'index sans le supprimer du disque :

git rm -r --cached node_modules
git commit -m "chore: retrait de node_modules du dépôt"
git push

Activité 2 Travailler sur une branche

Créez la branche feature/route-version, ajoutez la route GET /version (leçon 3.2), faites un commit avec un message conventionnel, poussez la branche, puis fusionnez-la dans main par une Pull Request sur GitHub.

Voir le corrigé
git switch -c feature/route-version
git add src/
git commit -m "feat: route GET /version"
git push -u origin feature/route-version
# Sur GitHub : Compare & pull request → Create → Merge
git switch main
git pull

Activité 3 Repartir de zéro

Dans un autre dossier, clonez votre propre dépôt, installez les dépendances et lancez l'application. Qu'est-ce qui prouve que le dépôt est complet ?

Voir le corrigé

Si git clone puis npm install et npm run start:dev suffisent à faire fonctionner l'API, le dépôt contient tout le nécessaire (code, package.json, package-lock.json, configuration) et rien de superflu. C'est exactement ce que fera l'enseignant pour corriger vos TP.

À retenir

  • On versionne dès le premier jour : sauvegarde, historique, travail en équipe.
  • node_modules, dist et .env ne sont jamais versionnés ; .env.example l'est.
  • Cycle : git add, git commit -m "message clair", git push.
  • Une branche par fonctionnalité, fusionnée par Pull Request ; un tag par version.
  • git clone + npm install suffisent à récupérer un projet.