Aller au contenu

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.

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)
Fenêtre de terminal
mkdir monprojet && cd monprojet
git init # nouveau dépôt dans le dossier courant
git clone git@git.exemple.com:equipe/monprojet.git # copie d'un dépôt distant (SSH)
git clone https://git.exemple.com/equipe/monprojet.git
git 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 choisi
Fenêtre de terminal
echo "# Mon projet" > README.md
git status # état du dépôt
git add README.md # prépare le fichier pour le commit
git commit -m "docs: add readme" # enregistre
git log --oneline # historique

Autres formes de git add :

Fenêtre de terminal
git add src/ # un dossier
git add -p # choisit morceau par morceau (commits plus précis)
git add -u # fichiers déjà suivis modifiés ou supprimés
git 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".

Fenêtre de terminal
git status # fichiers modifiés, ajoutés, non suivis
git status -s # forme courte
git diff # modifications non ajoutées
git diff --staged # modifications ajoutées, prêtes à valider
git diff main..autre-branche # différences entre deux branches
git diff HEAD~1 # depuis le commit précédent
git diff --stat # résumé par fichier

Légende de git status -s : ?? fichier non suivi, A ajouté, M modifié, D supprimé.

Fenêtre de terminal
git log # historique complet
git log --oneline # un commit par ligne
git log --oneline --graph --all # arbre des branches
git log -5 # 5 derniers commits
git log --author="Alice" # par auteur
git log --since="2 weeks ago" # par date
git log -- chemin/fichier # historique d'un fichier
git log -S"motclé" # commits qui ajoutent ou retirent ce texte
git 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 commit
git blame chemin/fichier # qui a modifié chaque ligne
Fenêtre de terminal
git mv ancien.txt nouveau.txt # renomme (et prépare le commit)
git rm fichier.txt # supprime le fichier et le prépare
git rm --cached fichier.txt # ne le suit plus, mais le garde sur le disque

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 compilation
node_modules/
dist/
*.log
# Secrets et configuration locale
.env
.env.*
!.env.example
  • dossier/ : un dossier ; *.log : un motif ; !exception : une exception.
  • Un fichier déjà suivi n’est pas ignoré rétroactivement : git rm --cached fichier puis commit.
  • Vérifier pourquoi un fichier est ignoré : git check-ignore -v fichier.

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.