Commandes Principales du Workflow Git
Table des matières
- Le workflow Git de base
- git init - Initialiser un dépôt
- git status - Vérifier l'état
- git add - Ajouter au staging
- git commit - Enregistrer les modifications
- git log - Consulter l'historique
- git clone - Cloner un dépôt
- git push - Envoyer vers le serveur
- git pull - Récupérer les modifications
- Résumé des commandes
1 - Le workflow Git de base
Les trois zones de Git
┌─────────────────┐ git add ┌─────────────────┐ git commit ┌─────────────────┐
│ │ ───────────▶ │ │ ───────────▶ │ │
│ Working │ │ Staging │ │ Repository │
│ Directory │ │ Area │ │ (.git) │
│ │ ◀─────────── │ (Index) │ │ │
│ │ git restore │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
Fichiers Prêts à Historique
modifiés commiter des versions
Cycle de vie d'un fichier
| État | Description |
|---|---|
| Untracked | Nouveau fichier, pas encore suivi par Git |
| Staged | Ajouté au staging, prêt pour le commit |
| Committed | Enregistré dans l'historique |
| Modified | Modifié depuis le dernier commit |
🔝 Retour à la table des matières
2 - git init - Initialiser un dépôt
2.1 Créer un nouveau dépôt
mkdir mon-projet
cd mon-projet
git init
Résultat :
Initialized empty Git repository in /chemin/vers/mon-projet/.git/
2.2 Ce qui se passe
Git crée un dossier caché .git qui contient :
.git/
├── HEAD # Pointe vers la branche actuelle
├── config # Configuration du dépôt
├── description # Description du dépôt
├── hooks/ # Scripts automatiques
├── objects/ # Stockage des données
└── refs/ # Références (branches, tags)
⚠️ Ne jamais supprimer ou modifier manuellement le dossier
.git! Vous perdriez tout votre historique.
2.3 Vérifier l'initialisation
ls -la
git status
🔝 Retour à la table des matières
3 - git status - Vérifier l'état
3.1 Usage de base
git status
3.2 Les différents états possibles
Dépôt vide :
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Fichiers non suivis :
On branch main
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
style.css
Fichiers dans le staging :
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: index.html
Fichiers modifiés :
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: index.html
3.3 Format court
git status -s
# ou
git status --short
Résultat :
M index.html # M = Modified
A style.css # A = Added (staged)
?? nouveau.txt # ?? = Untracked
🔝 Retour à la table des matières
4 - git add - Ajouter au staging
4.1 Ajouter un fichier spécifique
git add fichier.txt
4.2 Ajouter plusieurs fichiers
git add fichier1.txt fichier2.txt fichier3.txt
4.3 Ajouter par extension
git add *.html
git add *.css
4.4 Ajouter un dossier
git add src/
4.5 Ajouter tous les fichiers
git add .
# ou
git add --all
# ou
git add -A
4.6 Ajouter interactivement
git add -p
# ou
git add --patch
Cette commande vous permet de choisir quelles modifications ajouter dans chaque fichier.
4.7 Retirer du staging
# Retirer un fichier du staging (garder les modifications)
git restore --staged fichier.txt
# Ancienne syntaxe (encore valide)
git reset HEAD fichier.txt
🔝 Retour à la table des matières
5 - git commit - Enregistrer les modifications
5.1 Commit avec message
git commit -m "Message descriptif du commit"
5.2 Commit avec éditeur
git commit
Ouvre l'éditeur configuré pour écrire un message détaillé.
5.3 Commit en une seule commande (add + commit)
git commit -am "Message"
⚠️ Cette option ne fonctionne que pour les fichiers déjà suivis (pas les nouveaux fichiers).
5.4 Modifier le dernier commit
# Modifier le message
git commit --amend -m "Nouveau message"
# Ajouter des fichiers oubliés
git add fichier-oublie.txt
git commit --amend --no-edit
5.5 Bonnes pratiques pour les messages
Structure recommandée :
<type>: <description courte> (max 50 caractères)
<corps du message optionnel>
- Explication détaillée
- Pourquoi ce changement
<footer optionnel>
Fixes #123
Types courants :
| Type | Description |
|---|---|
feat | Nouvelle fonctionnalité |
fix | Correction de bug |
docs | Documentation |
style | Formatage (pas de changement de code) |
refactor | Refactoring du code |
test | Ajout de tests |
chore | Maintenance, dépendances |
Exemples :
git commit -m "feat: ajouter la page de connexion"
git commit -m "fix: corriger le bug d'affichage du menu"
git commit -m "docs: mettre à jour le README"
🔝 Retour à la table des matières
6 - git log - Consulter l'historique
6.1 Log de base
git log
6.2 Log condensé (une ligne par commit)
git log --oneline
Résultat :
a1b2c3d feat: ajouter la page de connexion
e4f5g6h fix: corriger le bug du menu
i7j8k9l docs: mettre à jour README
6.3 Log graphique
git log --oneline --graph --all
6.4 Log avec statistiques
git log --stat
6.5 Log limité
# Les 5 derniers commits
git log -5
# Commits d'un auteur
git log --author="Jean"
# Commits depuis une date
git log --since="2024-01-01"
# Commits contenant un mot
git log --grep="bug"
6.6 Alias pratique
git config --global alias.lg "log --oneline --graph --all --decorate"
Usage :
git lg
🔝 Retour à la table des matières
7 - git clone - Cloner un dépôt
7.1 Cloner via HTTPS
git clone https://github.com/utilisateur/repo.git
7.2 Cloner via SSH (recommandé)
git clone [email protected]:utilisateur/repo.git
7.3 Cloner dans un dossier spécifique
git clone [email protected]:utilisateur/repo.git mon-dossier
7.4 Cloner une branche spécifique
git clone -b develop [email protected]:utilisateur/repo.git
7.5 Cloner superficiellement (sans historique)
git clone --depth 1 [email protected]:utilisateur/repo.git
🔝 Retour à la table des matières
8 - git push - Envoyer vers le serveur
8.1 Push de base
git push origin main
8.2 Push avec tracking
git push -u origin main
Après -u, vous pouvez simplement faire :
git push
8.3 Push de toutes les branches
git push --all origin
8.4 Push des tags
git push --tags
8.5 Force push (à utiliser avec précaution)
git push --force
# ou plus sécurisé
git push --force-with-lease
⚠️ Attention :
--forceécrase l'historique distant. Utilisez uniquement sur vos propres branches !
🔝 Retour à la table des matières
9 - git pull - Récupérer les modifications
9.1 Pull de base
git pull origin main
9.2 Pull simple (si tracking configuré)
git pull
9.3 Pull avec rebase
git pull --rebase origin main
9.4 Fetch + Merge manuellement
git fetch origin
git merge origin/main
💡 Conseil :
git fetchest plus sûr car il récupère sans fusionner automatiquement.
🔝 Retour à la table des matières
10 - Résumé des commandes
Commandes essentielles
| Commande | Description |
|---|---|
git init | Initialiser un dépôt |
git status | Voir l'état des fichiers |
git add <fichier> | Ajouter au staging |
git add . | Ajouter tous les fichiers |
git commit -m "msg" | Créer un commit |
git log | Voir l'historique |
git clone <url> | Cloner un dépôt |
git push | Envoyer vers le serveur |
git pull | Récupérer du serveur |
Workflow typique
# 1. Créer/modifier des fichiers
echo "Hello World" > index.html
# 2. Vérifier les modifications
git status
# 3. Ajouter au staging
git add index.html
# 4. Créer un commit
git commit -m "feat: ajouter la page d'accueil"
# 5. Envoyer vers GitHub
git push origin main
Prochaine étape
Place à la pratique avec un exercice complet de workflow Git !