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 statusRépertorie les fichiers qui sont indexés, non indexés et non suivis.
git logAffiche l’intégralité de l’historique des commits en utilisant le format par défaut.
git diffCompare 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 -nAffiche 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 --amendModifie 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 reflogPermet 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 branchRé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 --editOuvre 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 --onelineAffiche l’historique des commits, en compressant chaque commit sur une seule ligne.
git log -pAffiche l’historique des commits et le diff complet 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 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 HEADCompare 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 --cachedCompare les différences entre la zone de staging (après git add) et le dépôt (après git commit).
git reset
git resetRé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 --hardRé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> --forcePoussée forcé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.