0%
Tutoriel 3 sur 10
30% terminé

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 bug
  • docs: documentation
  • style: formatage, point-virgules manquants, etc.
  • refactor: refactorisation du code
  • test: ajout de tests
  • chore: 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

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

  1. Commitez souvent : Petits commits fréquents
  2. Messages clairs : Décrivez ce que fait le commit
  3. Vérifiez avant de commiter : git status et git diff
  4. Utilisez .gitignore : Évitez les fichiers inutiles
  5. Testez avant de commiter : Assurez-vous que le code fonctionne

Ressources supplémentaires

Cheat sheets

Outils visuels

  • gitk : Interface graphique intégrée
  • git 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