J'utilise des scripts shell pour me basculer vers n'importe quel compte que je veux être "actif". Fondamentalement, vous commencez à partir d'un nouveau départ, configurez un compte correctement et travaillez, puis déplacez ces fichiers vers un nom avec le préfixe approprié. À partir de là, vous pouvez utiliser la commande "github" ou "gitxyz" pour basculer :
# mon script github
cd ~/.ssh
if [ -f git_dhoerl -a -f git_dhoerl.pub -a -f config_dhoerl ]
then
;
else
echo "Erreur : fichiers manquants"
exit 1
fi
# Enregistrer une copie dans /tmp, au cas où
cp id_rsa /tmp
cp id_rsa.pub /tmp
cp config /tmp
echo "Fichiers anciens enregistrés dans /tmp, au cas où"
rm id_rsa
rm id_rsa.pub
rm config
echo "Liens/fichiers actuels supprimés"
ln git_dhoerl id_rsa
ln git_dhoerl.pub id_rsa.pub
ln config_dhoerl config
git config --global user.email "dhoerl@.com"
git config --global github.user "dhoerl"
git config --global github.token "whatever_it_is"
ssh-add -D
J'ai eu beaucoup de chance avec ça. J'ai également créé un script de lancement dans Xcode (pour les utilisateurs de Mac) afin qu'il ne compile pas mon projet à moins que je n'aie le réglage approprié (puisque ça utilise git) :
Script de lancement placé après les Dépendances (en utilisant /bin/ksh comme shell) :
if [ "$(git config --global --get user.email)" != "dhoerl@.com" ]
then
exit 1
fi
ÉDIT : ajout des tests pour vérifier l'existence des nouveaux fichiers et copier les anciens fichiers dans /tmp pour répondre au commentaire de @naomik ci-dessous.
4 votes
Les étapes données dans le lien http://net.tutsplus.com/tutorials/tools-and-tips/how-to-work-with-github-and-multiple-accounts ont bien fonctionné pour moi et juste pour ajouter une chose, vous devez ajouter votre clé de dépôt personnel en utilisant
ssh-add ~/.ssh/id_rsa_COMPANY
pour indiquer à l'agent ssh de l'inclure pour une utilisation.
Le reste fonctionne bien pour moi avec le tutoriel mentionné ci-dessus.
2 votes
"parce qu'une clé ne peut être attachée qu'à un seul compte" bien sûr ? pourquoi ?
0 votes
À partir de Git 2.13, il prend en charge les inclusions conditionnelles dans .gitconfig qui est une façon utile de gérer les identités par hiérarchie de dossiers. stackoverflow.com/a/36296990/901597
0 votes
Possible duplicate de Multiple GitHub Accounts & SSH Config