Commandes Git essentielles
Maîtrisez les commandes de base pour suivre les modifications, créer des commits et gérer vos fichiers.
Commandes Git essentielles
Maintenant que Git est installé et configuré, découvrons les commandes que vous utiliserez quotidiennement. Ce tutoriel couvre les opérations fondamentales pour gérer vos fichiers et créer un historique cohérent de votre projet.
Vue d’ensemble du workflow Git
graph LR
A[Working Directory] -->|git add| B[Staging Area]
B -->|git commit| C[Local Repository]
C -->|git push| D[Remote Repository]
D -->|git pull| C
C -->|git checkout| A
Commandes de statut et d’information
git status
La commande la plus utilisée pour connaître l’état de votre dépôt :
# Voir l'état complet
git status
# Version courte
git status -s
git status --short
Exemple de sortie :
On branch main
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: index.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
style.css
git log
Consulter l’historique des commits :
# Historique complet
git log
# Version condensée
git log --oneline
# Avec graphique des branches
git log --oneline --graph --all
# Limiter le nombre de commits
git log -5
# Depuis une date
git log --since="2024-01-01"
# Par auteur
git log --author="Nom Auteur"
git show
Afficher les détails d’un commit :
# Dernier commit
git show
# Commit spécifique
git show abc1234
# Fichier spécifique dans un commit
git show abc1234:fichier.txt
Gestion des fichiers
git add
Ajouter des fichiers à la staging area :
# Ajouter un fichier spécifique
git add fichier.txt
# Ajouter plusieurs fichiers
git add fichier1.txt fichier2.txt
# Ajouter tous les fichiers modifiés
git add .
# Ajouter tous les fichiers (même supprimés)
git add -A
git add --all
# Ajouter interactivement
git add -i
# Ajouter par parties (patch)
git add -p
git commit
Créer un instantané de vos modifications :
# Commit avec message
git commit -m "Message de commit"
# Commit avec message détaillé
git commit -m "Titre du commit" -m "Description détaillée"
# Commit en ajoutant automatiquement les fichiers modifiés
git commit -am "Message de commit"
# Modifier le dernier commit
git commit --amend
# Commit avec signature GPG
git commit -S -m "Message signé"
Bonnes pratiques pour les messages de commit
# Format recommandé
git commit -m "type: description courte
Description plus détaillée si nécessaire.
- Point important 1
- Point important 2
Fixes #123"
Types courants :
feat:
nouvelle fonctionnalitéfix:
correction de bugdocs:
documentationstyle:
formatage, point-virgules manquants, etc.refactor:
refactorisation du codetest:
ajout de testschore:
maintenance
Gestion des modifications
git diff
Comparer les modifications :
# Différences dans le working directory
git diff
# Différences dans la staging area
git diff --staged
git diff --cached
# Différences entre deux commits
git diff abc1234 def5678
# Différences d'un fichier spécifique
git diff fichier.txt
# Statistiques des modifications
git diff --stat
git restore
Annuler des modifications (Git 2.23+) :
# Restaurer un fichier modifié
git restore fichier.txt
# Restaurer tous les fichiers modifiés
git restore .
# Retirer un fichier de la staging area
git restore --staged fichier.txt
# Restaurer depuis un commit spécifique
git restore --source=abc1234 fichier.txt
git reset
Réinitialiser l’état du dépôt :
# Retirer un fichier de la staging area
git reset fichier.txt
# Réinitialiser la staging area
git reset
# Réinitialiser au commit précédent (garde les modifications)
git reset HEAD~1
# Réinitialiser complètement (ATTENTION : perte de données)
git reset --hard HEAD~1
Gestion des fichiers et dossiers
git rm
Supprimer des fichiers :
# Supprimer un fichier du dépôt et du système
git rm fichier.txt
# Supprimer seulement du dépôt (garder localement)
git rm --cached fichier.txt
# Supprimer un dossier récursivement
git rm -r dossier/
git mv
Déplacer ou renommer des fichiers :
# Renommer un fichier
git mv ancien-nom.txt nouveau-nom.txt
# Déplacer un fichier
git mv fichier.txt dossier/fichier.txt
Fichier .gitignore
Ignorer des fichiers et dossiers :
# Fichiers de log
*.log
# Dossiers de build
build/
dist/
# Fichiers de configuration locale
.env
config.local.js
# Dépendances
node_modules/
vendor/
# Fichiers système
.DS_Store
Thumbs.db
# IDE
.vscode/
.idea/
*.swp
*.swo
# Fichiers temporaires
*.tmp
*.temp
Commandes .gitignore
# Vérifier si un fichier est ignoré
git check-ignore fichier.txt
# Forcer l'ajout d'un fichier ignoré
git add -f fichier.txt
# Retirer un fichier déjà tracké mais maintenant ignoré
git rm --cached fichier.txt
Navigation dans l’historique
git checkout
Naviguer entre les commits et branches :
# Aller à un commit spécifique (mode détaché)
git checkout abc1234
# Revenir à la branche principale
git checkout main
# Créer et basculer vers une nouvelle branche
git checkout -b nouvelle-branche
git switch (Git 2.23+)
Alternative moderne à checkout :
# Basculer vers une branche
git switch main
# Créer et basculer vers une nouvelle branche
git switch -c nouvelle-branche
# Revenir à la branche précédente
git switch -
Commandes d’aide et d’information
git help
Obtenir de l’aide :
# Aide générale
git help
# Aide pour une commande spécifique
git help commit
git commit --help
# Liste des commandes courantes
git help -a
git config
Gérer la configuration :
# Voir toute la configuration
git config --list
# Voir une valeur spécifique
git config user.name
# Modifier une valeur
git config --global user.email "nouveau@email.com"
Exercices pratiques
Exercice 1 : Workflow de base
# 1. Créer un nouveau projet
mkdir exercice-git
cd exercice-git
git init
# 2. Créer des fichiers
echo "# Mon Projet" > README.md
echo "console.log('Hello World');" > app.js
echo "body { margin: 0; }" > style.css
# 3. Vérifier le statut
git status
# 4. Ajouter les fichiers
git add README.md app.js
git status
# 5. Faire un commit
git commit -m "feat: ajout des fichiers de base"
# 6. Ajouter le CSS
git add style.css
git commit -m "style: ajout du CSS de base"
# 7. Voir l'historique
git log --oneline
Exercice 2 : Modifications et corrections
# 1. Modifier un fichier
echo "// Commentaire ajouté" >> app.js
# 2. Voir les différences
git diff
# 3. Ajouter à la staging area
git add app.js
# 4. Voir les différences staged
git diff --staged
# 5. Commit
git commit -m "docs: ajout de commentaire"
# 6. Modifier le dernier commit
git commit --amend -m "docs: ajout de commentaire dans app.js"
Exercice 3 : Gestion des erreurs
# 1. Créer un fichier par erreur
echo "Fichier temporaire" > temp.txt
git add temp.txt
# 2. Retirer de la staging area
git restore --staged temp.txt
# 3. Supprimer le fichier
rm temp.txt
# 4. Modifier un fichier puis l'annuler
echo "Modification non désirée" >> README.md
git restore README.md
Commandes avancées utiles
git stash
Sauvegarder temporairement des modifications :
# Sauvegarder les modifications
git stash
# Sauvegarder avec un message
git stash push -m "Travail en cours sur la feature X"
# Voir la liste des stash
git stash list
# Appliquer le dernier stash
git stash pop
# Appliquer un stash spécifique
git stash apply stash@{1}
git clean
Nettoyer les fichiers non trackés :
# Voir ce qui serait supprimé
git clean -n
# Supprimer les fichiers non trackés
git clean -f
# Supprimer aussi les dossiers
git clean -fd
Alias utiles
Configurez ces alias pour gagner du temps :
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.unstage 'restore --staged'
git config --global alias.last 'log -1 HEAD'
git config --global alias.lg 'log --oneline --graph --decorate --all'
git config --global alias.amend 'commit --amend --no-edit'
Dépannage courant
Annuler le dernier commit (en gardant les modifications)
git reset HEAD~1
Annuler complètement le dernier commit
git reset --hard HEAD~1
Récupérer un fichier supprimé
git restore fichier.txt
# ou depuis un commit spécifique
git restore --source=HEAD~1 fichier.txt
Voir qui a modifié une ligne
git blame fichier.txt
Bonnes pratiques
- Commitez souvent : Petits commits fréquents
- Messages clairs : Décrivez ce que fait le commit
- Vérifiez avant de commiter :
git status
etgit diff
- Utilisez .gitignore : Évitez les fichiers inutiles
- Testez avant de commiter : Assurez-vous que le code fonctionne
Ressources supplémentaires
Cheat sheets
Outils visuels
gitk
: Interface graphique intégréegit gui
: Interface pour les commits
Conclusion
Ces commandes forment la base de votre utilisation quotidienne de Git. Maîtriser ces opérations vous permettra de gérer efficacement vos projets et de maintenir un historique propre et cohérent.
Dans le prochain tutoriel, nous explorerons les branches et la fusion, des concepts essentiels pour le travail collaboratif et la gestion de fonctionnalités parallèles.
Temps de lecture estimé : 25 minutes
Niveau : Débutant
Étape précédente : Configuration et premiers pas
Prochaine étape : Branches et fusion