Skip to content

Aide-mémoire des commandes Git

Git est un système de contrôle de version distribué open-source, conçu pour gérer de petits à de très grands projets avec rapidité et efficacité. Git a été développé par Linus Torvalds pour faciliter la gestion du développement du noyau Linux.

Les bases de Git

git init <directory>

Crée un dépôt Git vide dans le répertoire spécifié. Utilisé sans arguments, il initialise le dossier actuel en tant que dépôt Git.

git clone <repo>

Clone le dépôt situé à <repo> sur la machine locale. Le dépôt source peut être situé sur le système de fichiers local ou sur une machine distante via HTTP ou SSH.

git config user.name <name>

Définit le nom de l’auteur pour tous les commits du dépôt actuel.

git add <directory>

Ajoute le contenu modifié dans <directory> pour le prochain commit (staging).

git commit -m "<message>"

Enregistre un instantané de la zone de préparation (staging), en utilisant <message> comme message de commit.

git status

Affiche les fichiers qui sont indexés (staged), non indexés et non suivis.

git log

Affiche tout l’historique des commits au format par défaut.

git diff

Compare les différences entre le répertoire de travail et la zone de préparation (staging area).

Annulation de modifications

git revert <commit>

Crée un nouveau commit qui annule toutes les modifications apportées dans <commit>, puis l’applique à la branche actuelle.

git reset <file>

Supprime <file> de la zone de préparation, mais conserve le répertoire de travail inchangé. Cela désindexe le fichier sans écraser les modifications.

git clean -n

Affiche les fichiers qui seront supprimés du répertoire de travail. Utilisez l’option -f au lieu de -n pour exécuter le nettoyage.

Réécriture de l’historique Git

git commit --amend

Modifie le dernier commit Git. Si le répertoire de travail contient des modifications prêtes à être commitées, elles seront incluses dans le commit modifié.

git rebase <base>

Réinitialise la branche actuelle sur <base>. <base> peut être un ID de commit, un nom de branche, un tag ou HEAD.

git reflog

Permet de voir tous les historiques d’opérations de toutes les branches (y compris les commits supprimés et les opérations de reset).

Les branches Git

git branch

Affiche la liste de toutes les branches. Ajoutez un argument <branch> pour créer une nouvelle branche nommée <branch>.

git checkout -b <branch>

Crée et bascule sur une nouvelle branche nommée <branch>. Supprimez -b pour basculer sur une branche existante.

git merge <branch>

Fusionne la branche <branch> dans la branche actuelle.

Dépôts distants

git remote add <name> <url>

Ajoute un nouveau dépôt distant. Une fois ajouté, vous pouvez utiliser <name> comme raccourci pour <url> dans d’autres commandes.

git fetch <remote> <branch>

Récupère toutes les mises à jour pour la branche spécifiée depuis le dépôt, mais ne fusionne pas avec la branche locale.

git pull <remote>

Récupère la copie distante spécifiée de la branche actuelle et la fusionne immédiatement dans la copie locale.

git push <remote> <branch>

Pousse la branche vers <remote>, ainsi que les commits et objets nécessaires. Si le dépôt distant n’existe pas, crée la branche nommée sur le dépôt distant.

Configuration (git config)

git config --global user.name <name>

Définit le nom de l’auteur pour tous les commits de l’utilisateur actuel.

git config --global user.email <email>

Définit l’e-mail de l’auteur pour tous les commits de l’utilisateur actuel.

git config --global alias.<alias-name> <git-command>

Crée un raccourci (alias) pour une commande Git.

git config --system core.editor <editor>

Définit l’éditeur de texte utilisé par les commandes pour tous les utilisateurs de l’ordinateur.

git config --global --edit

Ouvre le fichier de configuration globale dans un éditeur de texte pour une édition manuelle.

Journaux (git log)

git log -<limit>

Affiche les <limit> derniers commits.

git log --oneline

Affiche l’historique des commits en compressant chaque commit sur une seule ligne.

git log -p

Affiche l’historique des commits avec la différence (diff) complète pour chaque commit.

git log --stat

Affiche l’historique des commits, y compris les fichiers modifiés et le nombre relatif de lignes ajoutées ou supprimées dans chaque fichier.

git log --author="<pattern>"

Recherche les commits d’un auteur spécifique.

git log --grep="<pattern>"

Recherche dans l’historique des commits à l’aide d’expressions régulières (regex).

git log <since>..<until>

Affiche les commits survenus entre <since> et <until>.

git log -- <file>

Affiche uniquement les commits contenant le fichier spécifié.

Différences (git diff)

git diff HEAD

Compare les différences entre le répertoire de travail et le dépôt (après git commit).

git diff --cached

Compare les différences entre la zone de préparation (après git add) et le dépôt.

Réinitialisation (git reset)

git reset

Réinitialise la zone de préparation pour correspondre au dernier commit, mais conserve le répertoire de travail inchangé.

git reset --hard

Réinitialise la zone de préparation et le répertoire de travail au dernier commit, en écrasant toutes les modifications du répertoire de travail.

git reset <commit>

Déplace le pointeur de la branche actuelle en arrière vers <commit> et réinitialise la zone de préparation, sans modifier le répertoire de travail.

git reset --hard <commit>

Idem que précédemment, mais réinitialise également le répertoire de travail. Supprime les modifications non commitées ainsi que tous les commits après <commit>.

Récupération (git pull)

git pull --rebase <remote>

Récupère la copie distante de la branche actuelle et réinitialise la copie locale dessus (rebase) au lieu de fusionner.

Poussée (git push)

git push <remote> --force

Force la poussée (force push).

git push <remote> --all

Pousse toutes les branches locales vers le distant spécifié.

git push <remote> --tags

Pousse tous les tags locaux vers le dépôt distant.