Theme
Lecon 5 / 8NouvelleMAJ 27 nov. 2025
Parcours Cours Git pour débutants

Commandes Git essentielles

Crée un nouveau repository Git dans le dossier actuel.

#git#commandes#commit#status#add#diff

Progression

5 / 8

Derniere mise a jour

27 nov. 2025

Etat

Nouveau

Initialiser un nouveau repository

git init

Crée un nouveau repository Git dans le dossier actuel.

# Créer un nouveau dossier et initialiser Git
mkdir mon-projet
cd mon-projet
git init

Résultat :

Initialized empty Git repository in /home/user/mon-projet/.git/

Un dossier caché .git/ est créé, contenant toute la structure Git.


Cloner un repository existant

git clone

Télécharge une copie complète d'un repository distant.

git clone https://github.com/user/projet.git

Avec un nom de dossier personnalisé :

git clone https://github.com/user/projet.git mon-dossier

Protocoles disponibles :

  • HTTPS : https://github.com/user/projet.git (recommandé pour débuter)
  • SSH : git@github.com:user/projet.git (nécessite une clé SSH)

Vérifier l'état des fichiers

git status

Affiche l'état de ton working directory et staging area.

git status

Exemple de sortie :

On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  modified:   src/index.js

Untracked files:
  README.md

no changes added to commit

Ajouter des fichiers à la staging area

git add

Prépare les fichiers pour le prochain commit.

# Ajouter un fichier spécifique
git add fichier.txt
 
# Ajouter plusieurs fichiers
git add fichier1.txt fichier2.js
 
# Ajouter tous les fichiers modifiés
git add .
 
# Ajouter tous les fichiers d'un type
git add *.js
 
# Ajouter tous les fichiers d'un dossier
git add src/

Mode interactif (choisir fichier par fichier) :

git add -p

Créer un commit

git commit

Enregistre les modifications de la staging area dans l'historique.

# Commit avec message en ligne
git commit -m "feat: ajout de la page d'accueil"
 
# Ouvre l'éditeur pour un message plus détaillé
git commit

Message de commit sur plusieurs lignes :

git commit -m "feat: ajout du système de connexion" -m "- Formulaire de login
- Validation des champs
- Gestion des erreurs"

Ajouter et committer en une seule commande (fichiers déjà suivis) :

git commit -am "fix: correction du bug de navigation"

Bonnes pratiques pour les messages

Format conventionnel :

type(scope): description courte

Description détaillée (optionnelle)

Types courants :

  • feat: nouvelle fonctionnalité
  • fix: correction de bug
  • docs: documentation
  • style: formatage, point-virgules manquants, etc.
  • refactor: refactoring du code
  • test: ajout de tests
  • chore: maintenance, dépendances

Exemples :

git commit -m "feat: ajout de la recherche par filtres"
git commit -m "fix: correction du crash au démarrage"
git commit -m "docs: mise à jour du README"
git commit -m "refactor: simplification du système de routing"

Consulter l'historique

git log

Affiche l'historique des commits.

# Historique complet
git log
 
# Format condensé (un commit par ligne)
git log --oneline
 
# Avec graphique des branches
git log --oneline --graph --all
 
# Limiter le nombre de commits affichés
git log -5
 
# Commits d'un auteur spécifique
git log --author="Marie"
 
# Commits dans une période
git log --since="2 weeks ago"
git log --after="2025-01-01" --before="2025-01-31"

Format personnalisé :

git log --pretty=format:"%h - %an, %ar : %s"

Exemple de sortie :

a3f5b21 - Marie, 2 hours ago : feat: ajout du système de paiement
b8c4d92 - Pierre, 1 day ago : fix: correction du bug de connexion
c1e2f53 - Marie, 3 days ago : refactor: amélioration du code

Voir les modifications

git diff

Affiche les différences entre les fichiers.

# Différences non indexées (working directory vs staging)
git diff
 
# Différences indexées (staging vs dernier commit)
git diff --staged
# ou
git diff --cached
 
# Différences dans un fichier spécifique
git diff fichier.js
 
# Différences entre deux commits
git diff a3f5b21 b8c4d92
 
# Différences entre deux branches
git diff main feature

Exemple de sortie :

diff --git a/index.js b/index.js
index 1234567..abcdefg 100644
--- a/index.js
+++ b/index.js
@@ -1,4 +1,4 @@
-console.log('Bonjour');
+console.log('Bonjour le monde');

Annuler des modifications

Modifications non indexées (working directory)

Annuler les modifications d'un fichier :

git restore fichier.txt

Annuler toutes les modifications :

git restore .

Modifications indexées (staging area)

Retirer un fichier de la staging area (garde les modifications) :

git restore --staged fichier.txt

Retirer tous les fichiers de la staging area :

git restore --staged .

Annuler le dernier commit (avancé)

Garder les modifications dans la staging area :

git reset --soft HEAD~1

Garder les modifications dans le working directory :

git reset HEAD~1
# ou
git reset --mixed HEAD~1

SUPPRIMER complètement les modifications (⚠️ dangereux) :

git reset --hard HEAD~1

Supprimer des fichiers

git rm

Supprime un fichier du working directory ET de Git.

# Supprimer un fichier
git rm fichier.txt
 
# Supprimer un dossier complet
git rm -r dossier/

Retirer un fichier du suivi Git (mais le garder localement)

git rm --cached fichier.txt

Cas d'usage : fichier ajouté par erreur, doit être dans .gitignore.


Déplacer / Renommer des fichiers

git mv

# Renommer un fichier
git mv ancien-nom.txt nouveau-nom.txt
 
# Déplacer un fichier
git mv fichier.txt dossier/fichier.txt

Équivalent à :

mv fichier.txt nouveau.txt
git rm fichier.txt
git add nouveau.txt

Voir les informations d'un commit

git show

Affiche les détails d'un commit spécifique.

# Dernier commit
git show
 
# Commit spécifique
git show a3f5b21
 
# Fichier spécifique dans un commit
git show a3f5b21:src/index.js

Rechercher dans l'historique

git grep

Recherche dans les fichiers du repository.

# Rechercher un mot
git grep "fonction"
 
# Rechercher avec numéros de ligne
git grep -n "fonction"
 
# Rechercher dans un commit spécifique
git grep "fonction" a3f5b21

git blame

Voir qui a modifié chaque ligne d'un fichier.

git blame fichier.js

Utile pour comprendre l'historique d'un fichier ligne par ligne.


Ignorer des fichiers

Créer un .gitignore

# Créer le fichier
touch .gitignore

Exemple de contenu :

# Dépendances
node_modules/
venv/
__pycache__/
 
# Build
dist/
build/
*.o
*.pyc
 
# Fichiers IDE
.vscode/
.idea/
*.swp
 
# Système
.DS_Store
Thumbs.db
 
# Environnement
.env
.env.local
secrets.json
 
# Logs
*.log
npm-debug.log*

Ajouter .gitignore au repository :

git add .gitignore
git commit -m "chore: ajout du fichier .gitignore"

Commandes de vérification

# Version de Git
git --version
 
# Aide sur une commande
git help <commande>
git help commit
 
# Configuration actuelle
git config --list
 
# Repository distant
git remote -v

Résumé des commandes essentielles

CommandeDescription
git initInitialiser un repository
git clone <url>Cloner un repository distant
git statusVoir l'état des fichiers
git add <fichier>Ajouter à la staging area
git commit -m "msg"Créer un commit
git logVoir l'historique
git diffVoir les différences
git restore <fichier>Annuler les modifications
git rm <fichier>Supprimer un fichier
git mv <old> <new>Renommer/déplacer

Liens vers la partie suivante


Tags

#git #commandes #commit #status #add #diff #log