Commandes Git essentielles
Crée un nouveau repository Git dans le dossier actuel.
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 initRé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.gitAvec un nom de dossier personnalisé :
git clone https://github.com/user/projet.git mon-dossierProtocoles 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 statusExemple 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 -pCré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 commitMessage 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 bugdocs: documentationstyle: formatage, point-virgules manquants, etc.refactor: refactoring du codetest: ajout de testschore: 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 featureExemple 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.txtAnnuler toutes les modifications :
git restore .Modifications indexées (staging area)
Retirer un fichier de la staging area (garde les modifications) :
git restore --staged fichier.txtRetirer 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~1Garder les modifications dans le working directory :
git reset HEAD~1
# ou
git reset --mixed HEAD~1SUPPRIMER complètement les modifications (⚠️ dangereux) :
git reset --hard HEAD~1Supprimer 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.txtCas 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.txtVoir 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.jsRechercher 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" a3f5b21git blame
Voir qui a modifié chaque ligne d'un fichier.
git blame fichier.jsUtile pour comprendre l'historique d'un fichier ligne par ligne.
Ignorer des fichiers
Créer un .gitignore
# Créer le fichier
touch .gitignoreExemple 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 -vRésumé des commandes essentielles
| Commande | Description |
|---|---|
git init | Initialiser un repository |
git clone <url> | Cloner un repository distant |
git status | Voir l'état des fichiers |
git add <fichier> | Ajouter à la staging area |
git commit -m "msg" | Créer un commit |
git log | Voir l'historique |
git diff | Voir les différences |
git restore <fichier> | Annuler les modifications |
git rm <fichier> | Supprimer un fichier |
git mv <old> <new> | Renommer/déplacer |