Table des matières
Un tutoriel interactif
Pour apprendre Git de manière interactive, je vous conseille le site learngitbranching.js.org.
Configuration de base
Définir son identité :
git config --global user.email "email@example.com"
git config --global user.name "Valentin Brosseau"Vérifier la configuration :
git config --listInitialisation & clonage
Créer un nouveau dépôt local :
git initProjet distant
Si le projet existe déjà sur GitHub / GitLab, ne faites jamais git init. Vous devez cloner le dépôt.
Cloner un dépôt existant (SSH recommandé) :
git clone git@domain.com:utilisateur/repo.git.gitignore
Créer manuellement :
vim .gitignore
git add .gitignore
git commit -m "Ajout du .gitignore"Créer via un template :
curl -s https://www.toptal.com/developers/gitignore/api/windows,macos,linux > .gitignore
git add .gitignore
git commit -m "Ajout du .gitignore"État et modifications locales
État du dépôt :
git statusDifférences non indexées :
git diffIndexer des fichiers :
git add fichier.txtIndexer tous les changements :
git add .
# ou
git add --allCréer un commit :
git commit -m "Message du commit"Commit rapide (fichiers déjà suivis uniquement) :
git commit -am "Message du commit"Modifier le dernier commit (message ou contenu) :
git commit --amendHistorique
Historique complet :
git logHistorique simplifié :
git log --oneline --graph --decorateHistorique par auteur :
git log --author="Nom"Historique d’un fichier :
git log -p fichier.txtQui a modifié quoi :
git blame fichier.txtBranches & tags
Lister les branches :
git branchCréer une branche :
git branch ma-brancheChanger de branche (commande moderne) :
git switch ma-brancheChanger de branche (ancienne commande) :
git checkout ma-brancheCréer et changer de branche :
git switch -c ma-brancheSupprimer une branche locale :
git branch -d ma-brancheCréer un tag :
git tag v1.0.0Merge & rebase
Fusionner une branche dans main :
git switch main
git merge ma-brancheAttention
Modifier l’historique (rebase, reset) est dangereux sur une branche partagée.
Mettre à jour une branche avec main :
git switch ma-branche
git rebase mainAnnuler un rebase :
git rebase --abortContinuer après résolution de conflits :
git rebase --continueDépôts distants
Lister les remotes :
git remote -vInformations sur origin :
git remote show originAjouter un dépôt distant :
git remote add origin git@domain.com:user/repo.gitPremier push et définition du upstream :
git push -u origin mainRécupérer sans fusionner :
git fetch originRécupérer et fusionner :
git pull
# ou explicitement
git pull origin mainPublier les commits locaux :
git pushPublier les tags :
git push --tagsAnnulation & restauration
Retirer des fichiers de l’index :
git reset HEAD fichier.txtRestaurer un fichier (commande moderne) :
git restore fichier.txtAnnuler un commit (sans réécrire l’historique) :
git revert <commit>Revenir à un commit en conservant les modifications :
git reset <commit>⚠️ Supprimer TOUTES les modifications locales :
git reset --hard HEAD⚠️ Revenir à un commit en supprimant tout :
git reset --hard <commit>Clients graphiques
Git peut être utilisé via des interfaces graphiques :
- GitKraken
- Visual Studio Code
- Tower
- Sourcetree
- WebStorm / PhpStorm
L’objectif n’est pas d’éviter Git, mais de choisir l’outil qui vous rend le plus efficace, sans perdre la compréhension des concepts fondamentaux.