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.
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
| 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
| 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). |
| 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
| 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é. |
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
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
✅ Réponse : git commit -m message
✅ Réponse : git checkout
✅ Réponse : Il pousse les commits ET établit le suivi de la branche distante
✅ Réponse : git log --oneline
✅ Réponse : À indiquer les fichiers que Git doit ignorer