Fiche de référence Git

Commandes Git essentielles pour le contrôle de version – branchement, validation, fusion et collaboration.

Configuration et mise en place

Configurer Git et définir votre identité

# Définir votre nom et votre email
git config --global user.name "Votre Nom"
git config --global user.email "votre.email@exemple.com"

# Vérifier votre configuration
git config --list

# Définir le nom de branche par défaut
git config --global init.defaultBranch main
Configuration initiale
# Définir l'éditeur par défaut
git config --global core.editor "code --wait"

# Activer la sortie couleur
git config --global color.ui auto

# Configurer l'aide d'authentification (Windows)
git config --global credential.helper wincred
Configuration supplémentaire

Création de dépôts

Initialiser ou cloner des dépôts Git

# Initialiser un nouveau dépôt
git init

# Initialiser avec un nom de branche spécifique
git init -b main

# Cloner un dépôt existant
git clone https://github.com/user/repo.git

# Cloner dans un répertoire spécifique
git clone https://github.com/user/repo.git my-folder
Initialisation du dépôt

Flux de travail de base

Commandes courantes pour l'utilisation quotidienne de Git

# Vérifier l'état du dépôt
git status

# Ajouter des fichiers à la zone de staging
git add file.txt
git add .                 # Ajouter tous les fichiers
git add *.js              # Ajouter tous les fichiers JavaScript

# Valider les modifications
git commit -m "Message du commit"
git commit -am "Message"  # Ajouter et valider les fichiers suivis

# Afficher l'historique des commits
git log
git log --oneline         # Vue compacte
git log --graph           # Afficher le graphe des branches
Commandes quotidiennes

Gestion des branches et fusion

Créer et gérer les branches

# Lister les branches
git branch                # Branches locales
git branch -a             # Toutes les branches (locales + distantes)

# Créer une nouvelle branche
git branch feature-branch

# Basculer vers une branche
git checkout feature-branch
git switch feature-branch  # Alternative moderne

# Créer et basculer vers une nouvelle branche
git checkout -b feature-branch
git switch -c feature-branch
Gestion des branches
# Fusionner une branche dans la branche courante
git merge feature-branch

# Supprimer une branche
git branch -d feature-branch    # Suppression sécurisée
git branch -D feature-branch    # Suppression forcée

# Renommer une branche
git branch -m old-name new-name
Fusion et nettoyage

Dépôts distants

Travailler avec des dépôts distants

# Lister les dépôts distants
git remote -v

# Ajouter un dépôt distant
git remote add origin https://github.com/user/repo.git

# Récupérer les changements du distant
git fetch origin

# Tirer les changements du distant
git pull origin main

# Pousser les changements vers le distant
git push origin main
git push -u origin main   # Définir l'amont et pousser
Opérations à distance
# Supprimer un remote
git remote remove origin

# Renommer un remote
git remote rename old-name new-name

# Modifier l'URL du remote
git remote set-url origin https://github.com/user/new-repo.git
Gestion des dépôts distants

Annulation des modifications

Revenir ou réinitialiser les modifications

# Annuler les modifications dans le répertoire de travail
git restore file.txt
git checkout -- file.txt  # Ancienne méthode

# Désindexer les fichiers
git restore --staged file.txt
git reset HEAD file.txt   # Ancienne méthode

# Modifier le dernier commit
git commit --amend -m "Nouveau message"

# Revenir à un commit (crée un nouveau commit)
git revert <commit-hash>
Opérations d'annulation
# Réinitialiser au commit précédent (attention !)
git reset --soft HEAD~1   # Conserver les modifications indexées
git reset --mixed HEAD~1  # Conserver les modifications non indexées
git reset --hard HEAD~1   # Annuler toutes les modifications

# Réinitialiser à un commit spécifique
git reset --hard <commit-hash>
Opérations de réinitialisation

Mise en réserve

Enregistrer temporairement les modifications

# Mettre de côté les modifications actuelles
git stash
git stash save "Travail en cours"

# Lister les stashs
git stash list

# Appliquer le stash
git stash apply           # Conserver le stash
git stash pop             # Appliquer et supprimer le stash

# Appliquer un stash spécifique
git stash apply stash@{0}

# Supprimer le stash
git stash drop stash@{0}
git stash clear           # Supprimer tous les stashs
Gestion des stashs

Visualisation des modifications

Inspecter les différences et l'historique

# Afficher les modifications non indexées
git diff

# Afficher les modifications indexées
git diff --staged
git diff --cached

# Afficher les différences entre commits
git diff commit1 commit2

# Afficher les modifications d'un fichier spécifique
git diff file.txt
Commandes de diff
# Afficher les détails du commit
git show <commit-hash>

# Afficher le fichier à un commit spécifique
git show <commit-hash>:file.txt

# Afficher qui a modifié quoi dans un fichier
git blame file.txt
Commandes d'inspection

Étiquetage

Créer et gérer les tags de version

# Lister les tags
git tag

# Créer un tag léger
git tag v1.0.0

# Créer un tag annoté
git tag -a v1.0.0 -m "Version 1.0.0"

# Taguer un commit spécifique
git tag -a v1.0.0 <commit-hash> -m "Message"

# Pousser les tags vers le remote
git push origin v1.0.0
git push origin --tags    # Pousser tous les tags

# Supprimer le tag
git tag -d v1.0.0
git push origin --delete v1.0.0
Opérations de tags

Commandes utiles

Commandes Git supplémentaires utiles

# Nettoyer les fichiers non suivis
git clean -n              # Simulation
git clean -f              # Supprimer les fichiers
git clean -fd             # Supprimer les fichiers et répertoires

# Rechercher dans le dépôt
git grep "terme de recherche"

# Afficher qui a modifié un fichier
git log --follow file.txt

# Créer un alias
git config --global alias.st status
git config --global alias.co checkout
Utilitaires utiles
# Ignorer les modifications du fichier
git update-index --assume-unchanged file.txt

# Suivre à nouveau les modifications du fichier
git update-index --no-assume-unchanged file.txt

# Afficher les fichiers suivis
git ls-files
Suivi des fichiers
Fiche de référence Git