Guide de référence des commandes Git essentielles

Initialisation et configuration du projet

Avant de commencer à suivre les versions d'un projet, il est nécessaire d'initialiser l'environnemetn Git ou de récupérer un dépôt existant.

# Créer un nouveau dépôt Git dans le dossier courant
git init

# Créer un nouveau dossier et l'initialiser comme dépôt Git
git init mon-nouveau-projet

# Cloner un projet distant avec tout son historique
git clone https://github.com/utilisateur/nom-du-depot.git

La configuration de l'identité est cruciale pour l'attribution des commits :

# Configurer l'utilisateur globalement
git config --global user.name "Developpeur Expert"
git config --global user.email "expert@example.com"

# Lister tous les paramètres de configuration actifs
git config --list

Gestion des modifications et de l'index (Staging)

Git utilise une zone intermédiaire apelée "index" ou "staging area" avant de valider les chagnements dans l'historique.

# Ajouter un fichier spécifique à l'index
git add source/main.py

# Ajouter l'intégralité des modifications du répertoire actuel
git add .

# Supprimer un fichier du projet et de l'index
git rm documentation.md

# Retirer un fichier de l'index tout en le conservant sur le disque
git rm --cached fichier-ignore.log

# Renommer ou déplacer un fichier
git mv ancien_nom.txt nouveau_nom.txt

Validation des changements (Commits)

Le commit enregistre l'état actuel de l'index dans la base de données locale.

# Enregistrer les modifications avec un message descriptif
git commit -m "Implémentation de l'interface utilisateur"

# Ajouter tous les fichiers modifiés et valider en une seule commande
git commit -a -m "Correction rapide du bug de rendu"

# Modifier le dernier commit (message ou contenu oublié)
git commit --amend -m "Nouveau message pour le dernier commit"

Gestion des branches

Les branches permettent de travailler sur différentes fonctionnalités en isolation.

# Lister toutes les branches (locales et distantes)
git branch -a

# Créer une nouvelle branche et basculer dessus immédiatement
git checkout -b feature/authentification

# Basculer vers une branche existante
git checkout main

# Fusionner une branche spécifique dans la branche actuelle
git merge feature/authentification

# Supprimer une branche locale après fusion
git branch -d feature/ancienne-feature

# Supprimer une branche sur le serveur distant
git push origin --delete feature/ancienne-feature

Synchronisation avec les dépôts distants

Le travail collaboratif repose sur l'échange de données avec des serveurs distants (remote).

# Afficher les dépôts distants configurés
git remote -v

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

# Récupérer les données distantes sans les fusionner
git fetch origin

# Télécharger les modifications et fusionner dans la branche actuelle
git pull origin main

# Envoyer les commits locaux vers le serveur
git push origin main

# Forcer la mise à jour distante (à utiliser avec prudence)
git push origin main --force

Inspection et historique

Outils pour examiner l'état du projet et l'évolution du code.

# Vérifier l'état des fichiers (modifiés, indexés, non suivis)
git status

# Afficher l'historique des commits de façon compacte
git log --oneline --graph

# Voir les modifications détaillées d'un fichier spécifique
git log -p architecture.pdf

# Identifier l'auteur de chaque ligne dans un fichier
git blame script.sh

# Comparer l'espace de travail avec l'index
git diff

Annulation et restauration

Git permet de revenir en arrière en cas d'erreur ou de changement de stratégie.

# Annuler les modifications non indexées d'un fichier
git checkout -- gestionnaire.py

# Réinitialiser l'index et le répertoire de travail au dernier commit (attention : perte de données)
git reset --hard HEAD

# Revenir à un commit spécifique sans supprimer les fichiers modifiés
git reset [commit_id]

# Créer un nouveau commit qui inverse les changements d'un commit précédent
git revert [commit_id]

Gestion des étiquettes (Tags)

Les tags sont utilisés pour marquer des points importants dans l'historique, comme les versions de sortie.

# Créer un tag pour la version actuelle
git tag v1.0.0

# Lister tous les tags existants
git tag

# Envoyer un tag spécifique vers le serveur
git push origin v1.0.0

Utilisation du remise (Stash)

Le "stash" permet de mettre de côté des modifications non terminées pour nettoyer le répertoire de travail temporairement.

# Sauvegarder les modifications en cours dans la pile
git stash

# Récupérer et appliquer les dernières modifications mises de côté
git stash pop

# Lister les éléments dans la pile de remise
git stash list

Étiquettes: Git version-control devops workflow

Publié le 13 juillet à 21h11