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 statusAffiche les fichiers qui sont indexés (staged), non indexés et non suivis.
git logAffiche tout l’historique des commits au format par défaut.
git diffCompare 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 -nAffiche 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 --amendModifie 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 reflogPermet 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 branchAffiche 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 --editOuvre 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 --onelineAffiche l’historique des commits en compressant chaque commit sur une seule ligne.
git log -pAffiche l’historique des commits avec la différence (diff) complète pour chaque commit.
git log --statAffiche 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 HEADCompare les différences entre le répertoire de travail et le dépôt (après git commit).
git diff --cachedCompare les différences entre la zone de préparation (après git add) et le dépôt.
Réinitialisation (git reset)
git resetRéinitialise la zone de préparation pour correspondre au dernier commit, mais conserve le répertoire de travail inchangé.
git reset --hardRé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> --forceForce la poussée (force push).
git push <remote> --allPousse toutes les branches locales vers le distant spécifié.
git push <remote> --tagsPousse tous les tags locaux vers le dépôt distant.