Ho un computer di lavoro, ed è configurato a livello globale per utilizzare la mia email di lavoro e il nome quando si esegue il commit. Questo è buono. Tuttavia, mi piacerebbe fare una sorta di regola che dice "se l'origine del repository è github, usa l'utente X e invia una email a Y"È possibile configurare user.name e user.email per i domini con caratteri jolly in .gitconfig?
Mi rendo conto che puoi fare una voce di configurazione per repository, ma mi piacerebbe per essere più automatico: se il clone è github, dovrebbe usare i dettagli dell'utente github. Se cloro dal lavoro, dovrebbe usare i dettagli del lavoro.
C'è un modo per configurarlo globalmente in base al dominio remoto? O un altro modo?
EDIT/UPDATE
ho accettato la risposta qui sotto, ma modificato lo script appena un po ':
#!/usr/bin/env bash
# "Real" git is the second one returned by 'which'
REAL_GIT=$(which -a git | sed -n 2p)
# Does the remote "origin" point to GitHub?
if ("$REAL_GIT" remote -v 2>/dev/null | grep '^origin\b.*github.com.*(push)$' >/dev/null 2>&1); then
# Yes. Set username and email that you use on GitHub.
export GIT_AUTHOR_NAME=$("$REAL_GIT" config --global user.ghname)
export GIT_AUTHOR_EMAIL=$("$REAL_GIT" config --global user.ghemail)
fi
"$REAL_GIT" "[email protected]"
L'aggiunta primario è il requisito per due git config
valori.
git config --global user.ghname "Your Name"
git config --global user.ghemail "[email protected]"
Questo evita di codificare i valori nello script, consentendogli di essere più portabile. Può essere?
Considerare di cambiare la risposta accettata a boywhoroared. È stato presentato dopo che la risposta di Mike Morearty è stata accettata, ma penso che sia una risposta migliore. È più semplice aggiungere altri domini e utilizza il hook post-checkout di git invece di sostituire interamente l'eseguibile. – charmoniumQ