Commandes Git de base
Le cycle quotidien avec Git : cloner, brancher, committer, pousser, fusionner. Les commandes que vous tapez tous les jours.
Démarrer
git init # nouveau dépôt git clone <url> # copier un dépôt distant git config --global user.name "Nom"
Le cycle quotidien
git status # où en suis-je ? git add fichier.txt # préparer un fichier git add -p # préparer par morceaux git commit -m "message" # enregistrer git pull # récupérer + fusionner git push # envoyer
git add -p vous laisse valider vos changements morceau par
morceau : idéal pour des commits propres et atomiques.
Branches
git switch -c ma-branche # créer et basculer git switch main # changer de branche git merge ma-branche # fusionner dans la branche courante git branch -d ma-branche # supprimer une fois fusionnée
Voir l'historique
git log --oneline --graph --decorate git diff # modifications non préparées git show <commit> # détail d'un commit
Ignorer des fichiers (.gitignore)
node_modules/ *.log .env /var/cache/
Un fichier déjà suivi par Git n'est pas ignoré rétroactivement : git rm --cached fichier puis un commit pour l'en sortir. git check-ignore -v fichier explique quelle règle ignore (ou non) un fichier donné.
Remiser des changements (stash)
git stash # mettre de côté les changements en cours git stash push -m "message" # avec un message descriptif git stash list # voir tous les stashs git stash pop # réappliquer le dernier et le supprimer git stash apply stash@{1} # réappliquer un stash précis sans le supprimer
Pratique pour changer de branche rapidement sans committer un travail inachevé — le stash met de côté les modifications non commitées et remet le répertoire de travail propre.
Étiquettes (tags)
git tag v1.0.0 # tag léger sur le commit courant git tag -a v1.0.0 -m "Version 1.0" # tag annoté (avec message, auteur, date) git push origin v1.0.0 # pousser un tag précis git push origin --tags # pousser tous les tags
Préférez les tags annotés (-a) pour marquer une version publiée : contrairement aux tags légers, ils stockent un message et un auteur, utiles pour retracer l'historique des releases.
Fichiers modifiés vs fichiers en zone de préparation
Git distingue trois états : le répertoire de travail (vos fichiers tels quels), la zone de préparation ou "staging" (ce que git add y a placé), et l'historique (ce qu'un commit a enregistré). git diff compare travail ↔ zone de préparation ; git diff --staged compare zone de préparation ↔ dernier commit.
Questions fréquentes
Quelle différence entre git switch et git checkout ?
`git switch` ne gère que les branches (plus lisible, plus sûr) ; `git checkout` fait aussi ça mais sert également à restaurer des fichiers. Utilisez `switch` + `restore` sur Git récent.
Comment annuler un `git add` ?
`git restore --staged <fichier>` retire le fichier de la zone de préparation sans toucher à son contenu.
`git pull` fait-il un merge ou un rebase ?
Un merge par défaut. Pour rebaser : `git pull --rebase`, ou configurez `git config --global pull.rebase true`.
Un `git stash pop` en conflit, que faire ?
Résolvez les conflits comme pour un merge normal, puis `git add` les fichiers concernés. Le stash reste dans la liste tant que vous ne le supprimez pas explicitement avec `git stash drop` — rien n'est perdu en cas d'erreur.
Merci pour votre retour !