Git : premiers pas
Les commandes de base pour suivre un projet avec Git. Git n’est pas encore installé ? Voir Installation. Les exemples utilisent un projet monprojet.
Principe : trois zones
Section intitulée « Principe : trois zones »| Zone | Contenu |
|---|---|
| Répertoire de travail | Les fichiers tels qu’ils sont sur le disque |
| Index (staging) | Les modifications choisies pour le prochain commit (git add) |
| Historique (dépôt) | Les commits enregistrés (git commit) |
Créer ou récupérer un dépôt
Section intitulée « Créer ou récupérer un dépôt »mkdir monprojet && cd monprojetgit init # nouveau dépôt dans le dossier courantgit clone git@git.exemple.com:equipe/monprojet.git # copie d'un dépôt distant (SSH)git clone https://git.exemple.com/equipe/monprojet.gitgit clone --depth 1 https://git.exemple.com/equipe/monprojet.git # sans l'historique complet (plus rapide)git clone git@git.exemple.com:equipe/monprojet.git autre-nom # dans un dossier choisiLe cycle de base
Section intitulée « Le cycle de base »echo "# Mon projet" > README.mdgit status # état du dépôtgit add README.md # prépare le fichier pour le commitgit commit -m "docs: add readme" # enregistregit log --oneline # historiqueAutres formes de git add :
git add src/ # un dossiergit add -p # choisit morceau par morceau (commits plus précis)git add -u # fichiers déjà suivis modifiés ou supprimésgit add . # tout le dossier courant (vérifier avec git status avant)Un message de commit se rédige dans l’éditeur avec git commit seul. Pour ajouter les fichiers déjà suivis et valider d’un coup : git commit -am "message".
Lire l’état
Section intitulée « Lire l’état »git status # fichiers modifiés, ajoutés, non suivisgit status -s # forme courtegit diff # modifications non ajoutéesgit diff --staged # modifications ajoutées, prêtes à validergit diff main..autre-branche # différences entre deux branchesgit diff HEAD~1 # depuis le commit précédentgit diff --stat # résumé par fichierLégende de git status -s : ?? fichier non suivi, A ajouté, M modifié, D supprimé.
Consulter l’historique
Section intitulée « Consulter l’historique »git log # historique completgit log --oneline # un commit par lignegit log --oneline --graph --all # arbre des branchesgit log -5 # 5 derniers commitsgit log --author="Alice" # par auteurgit log --since="2 weeks ago" # par dategit log -- chemin/fichier # historique d'un fichiergit log -S"motclé" # commits qui ajoutent ou retirent ce textegit show # dernier commit (message et modifications)git show a1b2c3d # un commit précis (identifiant abrégé)git show a1b2c3d:chemin/fichier # un fichier tel qu'il était dans ce commitgit blame chemin/fichier # qui a modifié chaque ligneDéplacer, renommer, supprimer
Section intitulée « Déplacer, renommer, supprimer »git mv ancien.txt nouveau.txt # renomme (et prépare le commit)git rm fichier.txt # supprime le fichier et le préparegit rm --cached fichier.txt # ne le suit plus, mais le garde sur le disqueIgnorer des fichiers : .gitignore
Section intitulée « Ignorer des fichiers : .gitignore »Un fichier .gitignore à la racine liste ce que Git ne doit pas suivre (dépendances, fichiers générés, secrets) :
# Dépendances et sorties de compilationnode_modules/dist/*.log
# Secrets et configuration locale.env.env.*!.env.exampledossier/: un dossier ;*.log: un motif ;!exception: une exception.- Un fichier déjà suivi n’est pas ignoré rétroactivement :
git rm --cached fichierpuis commit. - Vérifier pourquoi un fichier est ignoré :
git check-ignore -v fichier.
Messages de commit
Section intitulée « Messages de commit »Un commit = un changement logique, avec un message clair. Format conseillé (voir Bonnes pratiques) :
type(portée): description à l'impératif
Corps facultatif : pourquoi ce changement, pas seulement quoi.Exemple : feat(auth): add password reset by email.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuel : Git Basics
- Suite : Branches et fusions