Come usare più utenti Git sullo stesso computer

Come usare più utenti Git sullo stesso computer
Cover by Flow
a movie by Gints Zilbalodis (2024)

Prerequisiti

  • Git installato
  • Accesso a GitHub (o altro servizio Git)
  • Terminale con zsh (opzionale ma consigliato)

1. Creare le chiavi SSH

Per prima cosa, crea chiavi SSH separate per ogni account:

# Chiave per l'account personale
ssh-keygen -t rsa -b 4096 -C "personal.email@gmail.com"
# Salva come ~/.ssh/id_rsa_personal

# Chiave per l'account di lavoro
ssh-keygen -t rsa -b 4096 -C "work.email@company.com"
# Salva come ~/.ssh/id_rsa_work

2. Configurare SSH Config

Crea o modifica il file ~/.ssh/config:

# Account Personale
Host github.com-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_personal
    UseKeychain yes
    AddKeysToAgent yes

# Account di Lavoro
Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
    UseKeychain yes
    AddKeysToAgent yes

3. Configurare Git Config

Crea due file di configurazione Git separati:

# ~/.gitconfig-personal
[user]
    name = PersonalName
    email = personal.email@gmail.com

# ~/.gitconfig-work
[user]
    name = WorkName
    email = work.email@company.com

Modifica il file principale ~/.gitconfig:

[includeIf "gitdir:~/personal/"]
    path = ~/.gitconfig-personal

[includeIf "gitdir:~/www/"]
    path = ~/.gitconfig-work

4. Organizzare i progetti

~/personal/    # Progetti personali
~/www/         # Progetti di lavoro

5. Copiare la chiave pubblica personale e di lavoro:

cat ~/.ssh/id_rsa_personal.pub | pbcopy

Aggiungi all’account GitHub personale:

  • Accedi al tuo account GitHub personale
  • Vai su Settings → SSH and GPG keys → New SSH key
  • Dai un titolo descrittivo (es. “Personal MacBook”)
  • Incolla la chiave pubblica copiata
  • Clicca su “Add SSH key”

Fai lo stesso per la chiave di lavoro

cat ~/.ssh/id_rsa_work.pub | pbcopy

ecc…

6. Testare la connessione

# Testa la connessione personale
ssh -T git@github.com-personal

# Testa la connessione di lavoro
ssh -T git@github.com-work

Conclusione

Questa configurazione crea un cambio automatico dell’identità Git basato sulla posizione del progetto:

Quando lavori nelle directory ~/personal/*:

  • Git usa automaticamente la tua email e username personali
  • I commit saranno associati al tuo account GitHub personale
  • L’autenticazione SSH usa la tua chiave personale

Quando lavori nelle directory ~/www/*:

  • Git usa automaticamente la tua email e username di lavoro
  • I commit saranno associati al tuo account GitHub di lavoro
  • L’autenticazione SSH usa la tua chiave di lavoro

Questa configurazione basata sulle directory elimina la necessità di cambiare manualmente tra account Git e aiuta a prevenire commit accidentali con l’identità sbagliata. Puoi verificare la tua identità Git corrente in qualsiasi momento usando il comando git config user.name o git config user.email.

Ricorda: la chiave perché tutto funzioni correttamente è mantenere un’organizzazione coerente dei progetti:

  • Tieni sempre i progetti personali sotto ~/personal/
  • Tieni sempre i progetti di lavoro sotto ~/www/

Commenti

Caricamento commenti...