Aller au contenu principal

Commandes Principales du Workflow Git


Table des matières


  1. Le workflow Git de base
  2. git init - Initialiser un dépôt
  3. git status - Vérifier l'état
  4. git add - Ajouter au staging
  5. git commit - Enregistrer les modifications
  6. git log - Consulter l'historique
  7. git clone - Cloner un dépôt
  8. git push - Envoyer vers le serveur
  9. git pull - Récupérer les modifications
  10. 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

ÉtatDescription
UntrackedNouveau fichier, pas encore suivi par Git
StagedAjouté au staging, prêt pour le commit
CommittedEnregistré dans l'historique
ModifiedModifié 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 :

TypeDescription
featNouvelle fonctionnalité
fixCorrection de bug
docsDocumentation
styleFormatage (pas de changement de code)
refactorRefactoring du code
testAjout de tests
choreMaintenance, 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 fetch est plus sûr car il récupère sans fusionner automatiquement.

🔝 Retour à la table des matières



10 - Résumé des commandes



Commandes essentielles

CommandeDescription
git initInitialiser un dépôt
git statusVoir 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 logVoir l'historique
git clone <url>Cloner un dépôt
git pushEnvoyer vers le serveur
git pullRé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 !

🔝 Retour à la table des matières