Come sviluppatore, probabilmente utilizzi quotidianamente la CLI di Git (Interfaccia a riga di comando). Tuttavia, scrivere ripetutamente gli stessi vecchi comandi può essere laborioso, specialmente quando i comandi sono lunghi. Ecco dove entrano in gioco le alias di Git per aiutarti.

In questo articolo, imparerai come semplificare i tuoi comandi Git utilizzando alias.

Indice

Prerequisiti

  • Conoscenza di Git.

  • Git Bash installato (opzionale ma consigliato per gli utenti Windows).

  • Un IDE come VS Code (anche questo è opzionale).

Cosa sono gli alias di Git?

Gli alias di Git sono scorciatoie personalizzate per i comandi Git esistenti, rendendo le attività comuni più veloci e facili. Ti consentono di definire i tuoi comandi, consentendoti di personalizzare le scorciatoie esattamente come desideri.

Hai due opzioni principali per aggiungere/creare alias di git nella tua configurazione git, utilizzando il file di configurazione Git o aggiungendoli direttamente tramite la CLI (terminale/linea di comando).

Questa opzione prevede l’apertura del tuo file di configurazione globale di git e l’aggiunta dei tuoi alias di git in fondo al file.

Come Impostare il Tuo Editor Git Preferito

Imposta il software editor predefinito di Git, ad esempio, io uso VS Code per modificare il mio file di configurazione di Git, ma puoi utilizzare qualsiasi editor di testo/editor di codice che preferisci.

Esegui questo comando per impostare Notepad come editor preferito su Windows (CMD/PowerShell):

git config --global core.editor "notepad"

Esegui questo comando per impostare VS Code come editor preferito su Windows & MacOS/Linux:

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

Per impostare un editor predefinito diverso, cerca online “Imposta {editor} come editor predefinito di Git” e sostituisci {editor} con l’app che preferisci.

Come aprire il file di configurazione di Git

Apri il tuo terminale preferito e inserisci il seguente comando. Questo aprirà il file di configurazione globale di Git (git config —global), in modalità di modifica (-e).

git config --global -e

Puoi aprire il file di configurazione di git direttamente dalle seguenti posizioni:

Mac Os: Directory Home → mostra i file nascosti (Cmd + Shift + H) → .gitconfig

Windows: C:\Users\YourUsername\ → quindi mostra i file nascosti (in Visualizzazione) → e trova .gitconfig

Linux: Directory Home → mostra i file nascosti (Ctrl + H) → .gitconfig

Come Aggiungere un Alias di Git Tramite il Tuo File di Configurazione

Se stai aggiungendo alias di Git per la prima volta, apri il tuo file .gitconfig, aggiungi [alias] alla fine e poi elenca i tuoi shortcut di seguito. Questo indica a Git che si tratta di alias. Aggiungi il tuo alias preferito (il comando abbreviato che desideri eseguire).

Il formato di un alias di git è <alias> = <comando>, quindi abbiamo:

co = checkout
cob = checkout -b

Spiegazione degli esempi sopra:

co = checkout questo mappa il comando git checkout al comando più breve git co. Quindi chiameresti git co feature/123 nel tuo terminale.

Non è necessario digitare git di fronte al comando, poiché la configurazione lo pre-porrà automaticamente poiché sa che il comando che stai mappando è un comando Git.

Nota: Eventuali parametri passati al comando saranno applicati solo al comando finale chiamato nell’alias.

Altri alias possono essere aggiunti in questo modo, mappando scorciatoie ai comandi Git esistenti. Salvando e chiudendo il file renderà quindi gli alias disponibili nel tuo terminale.

Come Aggiungere Alias nella CLI

Se desideri un approccio più snello per aggiungere alias Git, puoi aggiungerli direttamente da dentro il terminale/linea di comando.

Prendendo gli esempi sopra, possiamo aggiungerli direttamente nel seguente modo:

Il formato del comando è: git config --global alias.{alias} "{comando originale}":

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

È semplice come quello!

Come Creare Comandi Personalizzati per Scorciatoie Più Complesse

Ottimo, sembra fantastico, ma non è davvero così impressionante – stiamo solo rimuovendo alcuni caratteri. Tuttavia, possiamo renderli molto più utili, possiamo creare i nostri comandi utilizzando comandi shell.

Prendiamo il seguente esempio, un comando che uso molto!

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

Questo alias combina più comandi Git in un unico comando shell. Il carattere ! dice a Git di trattarlo come un comando shell, non come un comando Git standard.

Senza !, Git considera l’alias come un comando Git (ad esempio, checkout diventa git checkout). Con !, Git sa di eseguirlo come un comando shell senza aggiungere git davanti.

Concatenando questi comandi, possiamo scrivere alias molto più utili. Quello sopra farà:

  • Prima, fare checkout del branch main.

  • Utilizzando l’operatore &&, significa che gli altri comandi verranno eseguiti solo se il precedente è stato completato con successo.

  • In secondo luogo, scaricherà le modifiche dal branch main.

  • Infine, creerà un nuovo branch dal branch main usando il nostro altro alias git cob.

Il comando finale può quindi accettare parametri (come farebbe il comando Git originale), quindi può essere utilizzato in questo modo:

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

Come Utilizzare i Parametri in Tutti i Comandi

Finora, abbiamo potuto passare i nostri parametri solo al comando git finale nel nostro alias. Tuttavia, cosa succede se vogliamo passare parametri a alcuni, se non tutti, dei comandi all’interno dell’alias? Possiamo farlo utilizzando una funzione shell.

Prendiamo l’esempio seguente:

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

Qui stiamo utilizzando una funzione shell che elabora i parametri in ingresso.

Spiegazione:

  1. !f():

    • Il ! dice a Git di interpretare l’alias come un comando shell anziché come un comando Git standard.

    • f() definisce una funzione shell f che ci permetterà di eseguire più comandi in sequenza.

  2. Tutto ciò che è contenuto dentro { } sarà eseguito all’interno della funzione f().

  3. git checkout \”$1”'\: Eseguirà un comando Git parametrizzato, dove $1 è scappato e verrà sostituito con il 1° parametro passato all’alias. Le sequenze di escape \" attorno a $1 consentono nomi di branch con spazi.

  4. && è un operatore logico che garantisce che ciascun comando venga eseguito solo se il precedente ha successo. Se git checkout "$1" fallisce, i comandi successivi non verranno eseguiti.

  5. git checkout -b \”$2”\ : Crea un nuovo branch con il nome del secondo parametro come prima.

  6. ;: Segna la fine della funzione f();

  7. f: L’ultimo f chiama immediatamente la funzione dell’alias, il che significa che quando si chiama l’alias, dichiara subito la funzione e la chiama immediatamente.

Utilizzo:

git new-work development task/feat-123

Altri Alias Utili

[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

Riepilogo

co: Passa al ramo specificato → git co task/feat-123

cob: Crea un nuovo ramo dal ramo attuale → git cob feature/123

s: Chiama git status per visualizzare lo stato del ramo git attuale → git s

tidy-up: Cancella tutti i rami locali diversi da maingit tidy-up

latest: Ottiene le ultime modifiche dal ramo remoto maingit latest

new-work: Crea un nuovo ramo (2° parametro) dal ramo del 1° parametro → git new-work main feat/123

git done: Esegue il push del ramo attuale nel repository remoto (origin) e lo imposta come ramo upstream. Questo può essere utile quando esegui il push del tuo primo commit e ricevi l’errore:
fatal: Il ramo attuale non ha un ramo upstream. Per eseguire il push del ramo attuale e impostare il remoto come upstream, usa git push --set-upstream origin

save: Aggiunge semplicemente tutti i file modificati, li committa, apre il tuo editor Git predefinito e richiede un messaggio di commit → git save

savem: Farà come sopra, ma anziché aprire il tuo editor, puoi passare un messaggio di commit inline → git savem ‘Task123: add index.html

br: Questo sembra complicato, ma non è così complicato come sembra ma mette in evidenza il potere degli alias. In sostanza, personalizza il formato di output di git branch per mostrare un elenco dettagliato e colorato di rami, ordinati per data dell’ultimo commit, apparirà qualcosa di simile all’immagine sottostante per ciascun ramo che hai localmente.

Ecco, un’introduzione agli alias di Git e alcuni utili esempi di alias che puoi aggiungere come punto di partenza alla tua configurazione.

Come sempre, se desideri discuterne o essere aggiornato su futuri articoli, puoi seguirmi su Twitter.