En tant que développeur, vous utilisez probablement quotidiennement l’interface en ligne de commande Git (CLI). Cependant, écrire les mêmes anciennes commandes encore et encore peut être laborieux, surtout lorsque les commandes sont longues. C’est ici que les alias Git entrent en jeu pour vous aider.

Dans cet article, vous apprendrez comment simplifier vos commandes Git en utilisant des alias.

Table des matières

Prérequis

  • Connaissance de Git.

  • Installation de Git Bash (optionnelle mais recommandée pour les utilisateurs de Windows).

  • Un IDE comme VS Code (également facultatif).

Quels sont les alias Git?

Les alias Git sont des raccourcis personnalisés pour les commandes Git existantes, facilitant et accélérant les tâches courantes. Ils vous permettent de définir vos propres commandes, vous permettant de personnaliser les raccourcis exactement comme vous le souhaitez.

Vous avez deux options principales pour ajouter/créer des alias Git dans votre configuration Git, en utilisant votre fichier de configuration Git ou en les ajoutant directement via l’interface en ligne de commande (terminal).

Cette option consiste à ouvrir votre fichier de configuration Git global et à ajouter vos alias Git à la fin du fichier.

Comment définir votre éditeur Git préféré

Définissez votre éditeur de configuration Git par défaut, par exemple, j’utilise VS Code pour éditer mon fichier de configuration Git, mais vous pouvez utiliser n’importe quel éditeur de texte/éditeur de code que vous préférez.

Exécutez cette commande pour définir Notepad comme éditeur préféré sur Windows (CMD/PowerShell):

git config --global core.editor "notepad"

Exécutez cette commande pour définir VS Code comme éditeur préféré sur Windows et MacOS/Linux:

git config --global core.editor "code --wait"

Pour définir un éditeur par défaut différent, recherchez en ligne « Définir {éditeur} comme éditeur par défaut pour Git » et remplacez {éditeur} par votre application préférée.

Comment ouvrir le fichier de configuration Git

Ouvrez votre terminal préféré et saisissez la commande suivante. Cela ouvrira le fichier de configuration Git global (git config —global), en mode édition (-e).

git config --global -e

Vous pouvez ouvrir le fichier de configuration Git directement depuis les emplacements suivants:

Mac Os: Répertoire personnel → afficher les fichiers masqués (Cmd + Shift + H) → .gitconfig

Windows: C:\Utilisateurs\VotreNomUtilisateur\ → puis afficher les fichiers masqués (dans Affichage) → et trouver .gitconfig

Linux: Répertoire personnel → afficher les fichiers masqués (Ctrl + H) → .gitconfig

Comment ajouter un alias Git via votre fichier de configuration

Si vous ajoutez des alias Git pour la première fois, ouvrez votre fichier .gitconfig, ajoutez [alias] à la fin, puis énumérez vos raccourcis ci-dessous. Cela indique à Git qu’il s’agit d’alias. Ajoutez votre alias préféré (la commande raccourcie que vous souhaitez exécuter).

Le format d’un alias Git est <alias> = <commande>, donc nous avons:

co = checkout
cob = checkout -b

Explication des exemples ci-dessus:

co = checkout cela associe la commande git checkout à une commande plus courte git co. Vous pouvez alors appeler git co feature/123 dans votre terminal.

Vous n’avez pas besoin de taper git devant la commande, car la configuration ajoutera automatiquement ceci puisqu’elle sait que la commande que vous associez est une commande Git.

Remarque: Tous les paramètres passés à la commande seront appliqués uniquement à la commande finale appelée dans l’alias.

Plusieurs alias peuvent être ajoutés de cette manière, associant des raccourcis à des commandes Git existantes. Enregistrer et fermer le fichier rendra alors les alias disponibles dans votre terminal.

Comment Ajouter des Alias dans l’Interface de Ligne de Commande

Si vous souhaitez une approche plus simplifiée pour ajouter des alias Git, vous pouvez les ajouter directement à partir du terminal/ligne de commande.

En reprenant les exemples ci-dessus, on peut les ajouter directement de la manière suivante:

Le format de la commande est: git config --global alias.{alias} "{commande originale}":

git config --global alias.co "checkout"
#ou
git config --global alias.cob "checkout -b"

C’est aussi simple que cela!

Comment Créer des Commandes Personnalisées pour des Raccourcis Plus Complexes

D’accord, cela semble bien, mais ce n’est pas vraiment impressionnant – nous ne supprimons que quelques caractères. Cependant, nous pouvons les rendre beaucoup plus utiles, nous pouvons créer nos propres commandes en utilisant des commandes shell.

Prenons l’exemple suivant, une commande que j’utilise souvent!

new-work = !git checkout main && git pull && git cob

Cet alias combine plusieurs commandes Git en une seule commande shell. Le caractère ! indique à Git de la traiter comme une commande shell, et non comme une commande Git standard.

Sans !, Git traite l’alias comme une commande Git (par exemple, checkout devient git checkout). Avec !, Git sait l’exécuter comme une commande shell sans ajouter git devant.

En enchaînant ces commandes, nous pouvons écrire des alias beaucoup plus utiles. Celui ci-dessus fera :

  • Tout d’abord, vérifiez la branche main.

  • En utilisant l’opérateur &&, cela signifie que les autres commandes ne s’exécuteront que si la précédente a réussi.

  • Deuxièmement, il récupérera les modifications depuis main.

  • Enfin, créez une nouvelle branche à partir de la branche main en utilisant notre autre alias git cob.

La commande finale peut alors accepter des paramètres (comme le ferait la commande Git originale), donc elle peut être utilisée comme suit :

git new-work 'feature/new-work-from-main'

Comment utiliser des paramètres dans toutes les commandes

Jusqu’à présent, nous avons seulement pu transmettre nos paramètres à la commande git finale dans notre alias. Cependant, que faire si nous voulons transmettre des paramètres à certaines, voire à toutes les commandes à l’intérieur de l’alias ? Nous pouvons y parvenir en utilisant une fonction shell.

Prenez l’exemple suivant :

new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"

Au-dessus, nous utilisons une fonction shell qui traite les paramètres d’entrée.

Explication :

  1. !f() :

    • Le ! indique à Git d’interpréter l’alias comme une commande shell plutôt qu’une commande Git standard.

    • f() définit une fonction shell f qui nous permettra d’exécuter plusieurs commandes en séquence.

  2. Tout ce qui se trouve à l’intérieur de { } sera exécuté dans la fonction f().

  3. git checkout \”$1”'\: Exécutera une commande Git paramétrée, où $1 est échappé et sera remplacé par le 1er paramètre passé à l’alias. Les séquences d’échappement \" autour de $1 permettent les noms de branches avec des espaces.

  4. && est un opérateur logique qui garantit que chaque commande ne s’exécute que si la précédente réussit. Si git checkout "$1" échoue, les commandes qui suivent ne s’exécuteront pas.

  5. git checkout -b \”$2”\ : Crée une nouvelle branche avec le nom du second paramètre comme précédemment.

  6. ;: Marque la fin de la fonction f();

  7. f: Le dernier f appelle immédiatement la fonction d’alias, ce qui signifie que lorsque vous appelez l’alias, il déclare la fonction puis l’appelle immédiatement.

Utilisation:

git new-work development task/feat-123

Autres alias utiles

[alias]
     co = checkout
    cob = checkout -b
    s = status
    tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
    latest = !git checkout main && git pull
    new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
    done = !git push -u origin HEAD
    save = !git add -A && git commit
    saveM = !git add -A && git commit -m
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Résumé

co: Passer à la branche spécifiée → git co task/feat-123

cob: Crée une nouvelle branche à partir de la branche actuelle → git cob feature/123

s: Appelle git status pour voir l’état de la branche git actuelle → git s

tidy-up: Supprime toutes les branches locales sauf maingit tidy-up

latest: Récupère les derniers changements de la branche distante maingit latest

new-work: Crée une nouvelle branche (2e paramètre) à partir de la branche du 1er paramètre → git new-work main feat/123

git done: Pousse la branche actuelle vers le dépôt distant (origin) et la définit comme branche en amont. Cela peut être utile lorsque vous poussez votre premier commit et que vous obtenez l’erreur:
fatal: La branche actuelle n'a pas de branche en amont. Pour pousser la branche actuelle et définir le dépôt distant comme branche en amont, utilisez git push --set-upstream origin

save: Ajoutera simplement tous les fichiers modifiés, les validera, ouvrira votre éditeur Git par défaut et demandera un message de validation → git save

savem : Fera comme ci-dessus, mais au lieu d’ouvrir votre éditeur, vous pouvez passer un message de commit en ligne → git savem ‘Task123 : ajouter index.html

br : Celui-ci semble compliqué, mais ce n’est pas aussi compliqué qu’il y paraît, mais il met en évidence la puissance des alias. En essence, il personnalise le format de sortie de git branch pour afficher une liste détaillée et colorée des branches, triées par date de commit la plus récente, cela ressemblera à l’image ci-dessous pour chaque branche que vous avez localement.

Voilà, une introduction aux alias Git et quelques exemples utiles d’alias que vous pouvez ajouter comme point de départ à votre configuration.

Comme toujours, si vous souhaitez en discuter ou entendre parler des futurs articles, vous pouvez me suivre sur Twitter.