Skip to content

Aide-mémoire des commandes Git

Git est un système de contrôle de version distribué open-source qui peut gérer efficacement et à grande vitesse la gestion des versions de projets allant de très petits à très grands. Git est un logiciel de contrôle de version open-source développé par Linus Torvalds pour aider à gérer le 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é. S’il est exécuté sans paramètres, initialise le répertoire courant 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 d’origine 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 à utiliser pour tous les commits dans le dépôt actuel.

git add <directory>

Ajoute les modifications dans <directory> pour le prochain commit.

git commit -m "<message>"

Valide l’instantané de la zone de staging, en utilisant <message> comme message de commit.

git status

Répertorie les fichiers qui sont indexés, non indexés et non suivis.

git log

Affiche l’intégralité de l’historique des commits en utilisant le format par défaut.

git diff

Compare les différences entre le répertoire de travail (pas encore ajouté avec git add) et la zone de staging (après git add).

Annulation des modifications

git revert <commit>

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

git reset <file>

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

git clean -n

Affiche les fichiers qui seront supprimés du répertoire de travail. Utilisez le drapeau -f à la place du drapeau -n pour effectuer le nettoyage.

Réécriture de l’histoire

git commit --amend

Modifie le dernier événement de commit Git. Si le répertoire de travail contient des modifications pouvant être commitées, ces modifications seront également validées lors de l’utilisation de la commande git commit –amend.

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 visualiser tous les enregistrements d’opérations de toutes les branches (y compris les commits supprimés et les opérations de reset).

Branches Git

git branch

Répertorie toutes les branches. Ajoutez un paramètre <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>. Omettez -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. Après avoir ajouté le distant, vous pouvez utiliser <name> comme raccourci pour <url> dans d’autres commandes.

git fetch <remote> <branch>

Récupère toutes les mises à jour de la branche spécifiée à partir du 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, une branche nommée est créée dans le dépôt distant.

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.

git log

git log -<limit>

Affiche les <limit> derniers enregistrements de l’historique des 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 et le diff complet 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 de chaque fichier.

git log --author="<pattern>"

Recherche des commits par un auteur spécifique.

git log --grep="<pattern>"

Recherche dans l’historique des commits en utilisant une correspondance par expression régulière.

git log <since>..<until>

Affiche les commits qui ont eu lieu entre <since> et <until>.

git log -- <file>

Affiche uniquement les enregistrements de commit contenant le fichier spécifié.

git diff

git diff HEAD

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

git diff --cached

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

git reset

git reset

Réinitialise la zone de staging pour qu’elle corresponde au commit le plus récent, mais conserve le répertoire de travail inchangé.

git reset --hard

Réinitialise à la fois la zone de staging et le répertoire de travail au commit le plus récent, en écrasant toutes les modifications dans le répertoire de travail.

git reset <commit>

Déplace le pointeur de la branche actuelle vers l’arrière jusqu’à <commit> et réinitialise la zone de staging, mais ne modifie pas le répertoire de travail.

git reset --hard <commit>

Idem que précédemment, mais réinitialise à la fois la zone de staging et le répertoire de travail. Supprime les modifications non validées et tous les commits après <commit>.

git pull

git pull --rebase <remote>

Récupère la copie distante de la branche actuelle et la rebase sur la copie locale. Utilise git rebase au lieu de merge pour intégrer les branches.

git push

git push <remote> --force

Poussée forcé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.