Git est un système de gestion de versions distribué qui permet de suivre et contrôler les modifications du code source.
⚙️ Configuration de base
📌 Action | 🧠 Commande |
---|
👤 Configurer nom d’utilisateur | git config --global user.name "Jean Dupont" |
📧 Configurer email | git config --global user.email "jean@mail" |
📋 Voir la configuration | git config --list |
🏗️ Initialiser un dépôt | git init |
📂 Cloner un dépôt distant | git clone https://github.com/user/repo.git |
📄 Gestion des fichiers
📌 Action | 🧠 Commande |
---|
📊 Voir le statut des fichiers | git status |
➕ Ajouter un fichier | git add <fichier> |
➕ Ajouter tous les fichiers | git add . |
➖ Retirer du staging | git reset <fichier> |
🗑️ Supprimer un fichier | git rm <fichier> |
📝 Voir les différences | git diff |
👁️ Voir les fichiers stagés | git diff --cached |
💾 Commits et historique
📌 Action | 🧠 Commande |
---|
💾 Commiter avec message | git commit -m "Message" |
⚡ Add + commit en une fois | git commit -am "Message" |
✏️ Modifier le dernier commit | git commit --amend |
📜 Voir l’historique | git log |
📋 Historique condensé | git log --oneline |
🌳 Historique graphique | git log --graph --oneline |
🔍 Voir un commit précis | git show <commit-id> |
🌿 Gestion des branches
📌 Action | 🧠 Commande |
---|
📋 Lister les branches | git branch |
🆕 Créer une branche | git branch <nom-branche> |
🔄 Changer de branche | git checkout <nom-branche> |
⚡ Créer et changer | git checkout -b <nom-branche> |
🔄 Changer (moderne) | git switch <nom-branche> |
⚡ Créer et changer (moderne) | git switch -c <nom-branche> |
🗑️ Supprimer une branche | git branch -d <nom-branche> |
🔗 Fusionner une branche | git merge <nom-branche> |
🌐 Dépôts distants
📌 Action | 🧠 Commande |
---|
📋 Lister les remotes | git remote -v |
🔗 Ajouter un remote | git remote add origin <url> |
⬆️ Pousser vers le remote | git push origin <branche> |
⬇️ Récupérer du remote | git pull origin <branche> |
📥 Télécharger sans merger | git fetch origin |
🏷️ Pousser les tags | git push --tags |
🆕 Pousser nouvelle branche | git push -u origin <branche> |
🛠️ Dépannage et annulations
📌 Action | 🧠 Commande |
---|
↩️ Annuler les modifications | git checkout -- <fichier> |
🔙 Revenir au dernier commit | git reset --hard HEAD |
⏪ Revenir à un commit précis | git reset --hard <commit-id> |
📦 Sauvegarder temporairement | git stash |
📤 Restaurer le stash | git stash pop |
📋 Lister les stash | git stash list |
🔍 Chercher dans l’historique | git log --grep="motclé" |
🧹 Nettoyer les fichiers | git clean -fd |
📝 Fichier .gitignore
Le .gitignore permet d’exclure des fichiers du versioning
Exemple basique
# Fichiers système
.DS_Store
Thumbs.db
# Logs
*.log
logs/
# Dépendances
node_modules/
vendor/
# Configuration locale
.env
config.local.json
Patterns utiles
*.ext
- Tous les fichiers avec extension
dossier/
- Tout un dossier
!exception.ext
- Exception (ne pas ignorer)
**/cache
- Dossier cache partout
🔄 Workflow
Workflow simple
# 1. Cloner ou initialiser
git clone https://github.com/user/repo.git
cd repo
# 2. Créer une branche
git checkout -b ma-feature
# 3. Travailler et commiter
git add .
git commit -m "Ajout de ma feature"
# 4. Pousser la branche
git push -u origin ma-feature
# 5. Fusionner (après review)
git checkout main
git merge ma-feature
git push origin main
États des fichiers
Working Directory → Staging Area → Repository → Remote
(modifié) add (staged) commit (commité) push (distant)