Sommaire
Maîtriser les commandes Git du quotidien : init, add, commit, status, log, branch, checkout, merge, push, pull. Avec des exemples concrets et un workflow type.
🎯 Objectifs de la fiche
- Prérequis et installation — Installer Git et configurer son identité
- Les commandes de base — init, add, commit, status, log, diff
- Travailler avec les branches — branch, checkout, merge, branch -d
- Travailler avec un dépôt distant — remote, clone, push, pull, fetch
- Commandes utiles au quotidien — stash, reset, restore, revert
- Workflow type — Exemple complet de la création d'une fonctionnalité jusqu'au push
Prérequis
Avoir compris les concepts de la fiche d'introduction (dépôt, commit, branche, etc.). Git doit être installé.
# Installer Git (Debian/Ubuntu) sudo apt install git -y # Configurer son identité (obligatoire) git config --global user.name "Prénom NOM" git config --global user.email "prenom.nom@exemple.fr" # Définir la branche par défaut (main plutôt que master) git config --global init.defaultBranch main
1. Commandes de base
| Commande | Exemple | Effet |
|---|---|---|
| git init | git init | Transforme le dossier courant en un dépôt Git. |
| git add <fichier> | git add README.md | Ajoute le fichier à l'index (staging area). |
| git add . | git add . | Ajoute TOUS les fichiers modifiés à l'index. |
| git commit -m message | git commit -m 'Ajout du README' | Enregistre les fichiers de l'index dans l'historique. |
| git commit -am message | git commit -am 'Correction mineure' | Add + commit en une commande (fichiers déjà suivis). |
| git status | git status | Affiche l'état des fichiers (modifiés, indexés, non suivis). |
| git log --oneline | git log --oneline | Affiche l'historique des commits en une ligne par commit. |
| git diff | git diff | Affiche les modifications non indexées. |
| git diff --staged | git diff --staged | Affiche les modifications indexées (en attente de commit). |
# Exemple de session de travail
mkdir mon-projet
cd mon-projet
git init
echo "# Mon Projet" > README.md
git add README.md
git commit -m "Premier commit : ajout README"
git status # devrait afficher : nothing to commit
2. Travailler avec les branches
| Commande | Exemple | Effet |
|---|---|---|
| git branch | git branch | Liste les branches locales. |
| git branch <nom> | git branch feature-login | Crée une nouvelle branche. |
| git checkout <nom> | git checkout feature-login | Bascule sur la branche spécifiée. |
| git checkout -b <nom> | git checkout -b feature-login | Crée et bascule en une commande. |
| git merge <branche> | git merge feature-login | Fusionne la branche dans la branche courante. |
| git branch -d <nom> | git branch -d feature-login | Supprime la branche (si fusionnée). |
| git branch -D <nom> | git branch -D feature-login | Supprime la branche de force (même non fusionnée). |
💡 Pour les projets en entreprise, on utilise souvent un workflow avec main comme branche stable, et des branches feature/ ou hotfix/ pour les développements.
3. Travailler avec un dépôt distant (GitHub/GitLab)
| Commande | Exemple | Effet |
|---|---|---|
| git remote add origin <url> | git remote add origin git@github.com:user/repo.git | Associe un dépôt distant. |
| git remote -v | git remote -v | Affiche les dépôts distants configurés. |
| git clone <url> | git clone git@github.com:user/repo.git | Copie un dépôt distant localement. |
| git push origin main | git push origin main | Envoie les commits vers le dépôt distant. |
| git push -u origin main | git push -u origin main | Push + établir le suivi (à faire une fois). |
| git pull origin main | git pull origin main | Récupère ET fusionne les modifications distantes. |
| git fetch origin | git fetch origin | Récupère les modifications sans les fusionner. |
# Exemple de workflow complet avec dépôt distant # 1. Créer un dépôt sur GitHub # 2. Initialiser localement git init git add . git commit -m "Premier commit" # 3. Lier au distant git remote add origin git@github.com:user/mon-projet.git # 4. Premier push git push -u origin main
4. Commandes de récupération / correction
⚠️ git reset --hard est dangereux : les modifications perdues ne peuvent pas être récupérées facilement. Utilisez --soft quand vous hésitez.
| Commande | Exemple | Effet |
|---|---|---|
| git restore <fichier> | git restore README.md | Annule les modifications non commitées d'un fichier. |
| git stash | git stash | Sauvegarde temporairement les modifications non commitées. |
| git stash pop | git stash pop | Restaure les modifications sauvegardées. |
| git reset HEAD <fichier> | git reset HEAD README.md | Retire le fichier de l'index (unstage). |
| git reset --soft HEAD~1 | git reset --soft HEAD~1 | Annule le dernier commit (gardes les modifs). |
| git reset --hard HEAD~1 | git reset --hard HEAD~1 | Annule le dernier commit (perds les modifs). |
| git revert <hash> | git revert abc1234 | Crée un commit qui annule le commit spécifié. |
5. Fichier .gitignore
Le fichier .gitignore liste les fichiers et dossiers que Git doit ignorer (mots de passe, fichiers compilés, dossiers de dépendances...).
# .gitignore — exemple pour un projet Python
__pycache__/
*.pyc
.env
.venv/
node_modules/
*.log
.DS_Store
⚠️ Ne committez jamais de mots de passe, clés API ou tokens. Utilisez des variables d'environnement et listez les fichiers sensibles dans .gitignore.
6. Workflow type (GitHub Flow)
1. Créer une branche pour une fonctionnalité git checkout -b feature-ajout-contact 2. Travailler, committer git add . git commit -m "Ajout du formulaire de contact" 3. Pousser la branche git push origin feature-ajout-contact 4. Ouvrir une Pull Request sur GitHub 5. Après review et merge, revenir sur main git checkout main git pull origin main 6. Supprimer la branche locale git branch -d feature-ajout-contact
Quelle commande crée un commit avec un message ?
✅ Réponse : git commit -m message
Quelle commande permet de basculer sur une branche existante ?
✅ Réponse : git checkout
Que fait git push -u origin main ?
✅ Réponse : Il pousse les commits ET établit le suivi de la branche distante
Quelle commande affiche l'historique des commits de manière concise ?
✅ Réponse : git log --oneline
À quoi sert le fichier .gitignore ?
✅ Réponse : À indiquer les fichiers que Git doit ignorer
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter