Configuration de Git
Pour afficher les paramètres de configuration Git, utilisez les commandes suivnates :
# Voir la configuration système
git config --system --list
# Voir la configuration globale de l'utilisateur
git config --global --list
# Voir la configuration du dépôt local
git config --local --list
Pour définir le nom d'utilisateur et l'adresse e-mail (identifiants utilisateur) :
# Ajouter un élément de configuration
git config --global user.name "votre_nom"
git config --global user.email "votre_email@exemple.com"
# Supprimer un élément de configuration
git config --global --unset user.name
Théorie de base de Git
Zones de travail
Git gère les fichiers dans quatre zones principales :
- Espace de travail : Répertoire local où se trouvent les fichiers du projet.
- Zone de staging : Zone temporaire pour préparer les modifications avant validation.
- Dépôt local : Base de données locale contenant l'historique complet des versions.
- Dépôt distant : Serveur distant pour la collaboration et le partage de code.
Les transitions entre zones se font via des commandes spécifiques comme add et commit.
Flux de travail
Le processus standard de Git inclut :
- Modifier des fichiers dans l'espace de travail.
- Ajouter les modifications à la zone de staging.
- Valider les modifications dans le dépôt local.
Les fichiers peuvent être dans trois états : modifié, staged ou validé.
Opérations courantes avec Git
Initialiser un dépôt
Créer un nouveau dépôt Git dans le répertoire courant :
# Initialiser un dépôt Git
git init
# Créer et initialiser un dépôt dans un nouveau répertoire
git init nouveau-depot
Cela génère un sous-répertoire .git contenant toutes les métadonnées du projet.
Cloner un dépôt distant
Pour copier un dépôt distant existant :
# Cloner un dépôt distant
git clone https://exemple.com/depot.git
git clone ssh://utilisateur@exemple.com/chemin/vers/depot.git
Gestion des fichiers
États des fichiers
Git suit les fichiers dans quatre états :
- Non suivi : Fichier présent mais non inclus dans le dépôt.
- Non modifié : Fichier identique à la dernière version validée.
- Modifié : Fichier altéré depuis la dernière validation.
- Staged : Fichier marqué pour inclusion dans la prochaine validation.
Vérifier l'état des fichiers
# Afficher l'état d'un fichier spécifique
git status fichier.txt
# Afficher l'état de tous les fichiers
git status
Ajouter des fichiers à la zone de staging
# Ajouter un fichier spécifique
git add fichier1.txt fichier2.txt
# Ajouter tous les fichiers du répertoire
git add .
Annuler les ajouts
# Retirer un fichier de la zone de staging sans le supprimer physiquement
git reset HEAD fichier.txt
# Supprimer un fichier de la zone de staging et de l'espace de travail
git rm fichier.txt
# Renommer un fichier
git mv ancien_nom.txt nouveau_nom.txt
Voir les modifications
# Comparer l'espace de travail et la zone de staging
git diff
# Comparer la zone de staging et la dernière validation
git diff --cached
# Comparer avec une validation spécifique
git diff HEAD~2
Ignorer des fichiers
Créez un fichier .gitignore avec des motifs pour exclure des fichiers :
# Exemples de règles dans .gitignore
*.log
temp/
!important.txt
Valider les modifications
# Valider avec un message descriptif
git commit -m "Message de validation"
# Valider directement les fichiers modifiés (sans ajout préalable)
git commit -a -m "Validation automatique"
# Modifier la dernière validation
git commit --amend -m "Nouveau message"
Annuler une validation
# Revenir à la validation précédente
git reset --hard HEAD~1
# Annuler une validation spécifique en créant une nouvelle validation
git revert abc123
Historique et journalisation
# Afficher l'historique des validations
git log
# Afficher l'historique avec graphique
git log --graph
# Afficher les modifications pour un fichier
git log -p fichier.txt
# Voir les commandes précédentes
history
Gestion des branches
Les branches permettent de travailler sur des fonctionnalités isolées.
Créer et naviguer entre les branches
# Lister les branches locales
git branch
# Créer une nouvelle branche
git branch nouvelle-branche
# Changer de branche
git checkout nouvelle-branche
# Créer et changer vers une nouvelle branche
git checkout -b autre-branche
Fusionner des branches
# Fusionner une branche dans la branche actuelle
git merge autre-branche
En cas de conflit, éditez les fichiers marqués et validez à nouveau.
Supprimer des branches
# Supprimer une branche locale
git branch -d branche-a-supprimer
# Supprimer une branche distante
git push origin --delete branche-distante
Travailler avec des dépôts distants
Ajouter un dépôt distant
# Ajouter un dépôt distant
git remote add origine https://exemple.com/depot.git
Synchroniser avec le distant
# Récupérer les modifications sans fusionner
git fetch origine
# Récupérer et fusionner les modifications
git pull origine branche
# Pousser les modifications locales
git push origine branche
Configurer le suivi des branches
# Lier une branche locale à une branche distante
git branch --set-upstream ma-branche origine/branche-distante
Outils d'aide et statistiques
# Voir l'aide d'une commande
git help commit
# Statistiques de contributions
git shortlog -sn
# Nombre de lignes modifiées
git diff --shortstat "@{1 day ago}"