J'ai UN référentiel sur GitHub, appelons-le Repo-1
.
Je souhaite d’abord accéder à ce référentiel en tant que tilisateur Git par défaut.
Appelons cet utilisateur User-1
.
J'ai créé paire de clés SSH, tout va bien, fonctionne bien.
J'ai fait UN AUTRE référentiel sur GitHub, appelons-le Repo-2
.
Je n'a apporté aucune modification dans Git local, sur mon ordinateur portable. Pas de changement de configuration, rien.
Maintenant - je veux cloner à partir de Repo-1
En tant que User-2
(Mais à partir du même ordinateur portable).
Tout d’abord: est-ce possible de le faire?
Un Git local sur un seul ordinateur portable peut-il basculer entre les "comptes d’utilisateur" et se présenter sous la forme User-2
? Et ensuite, à partir de CET identité, clonez à partir de Repo-1, effectuez un changement, puis appuyez sur Repo-1
?
Si possible, comment je fais ça?
Vous avez votre .gitconfig global où vous avez déjà configuré vos clés SSH/informations utilisateur. Le fichier global .gitconfig est remplacé par un fichier gitconfig local - le fichier "config" de votre dossier .git (s'il n'existe pas, vous devrez peut-être le créer).
Par exemple, vous pouvez copier le fichier .gitconfig dans le dossier .git (et le renommer "config") et simplement modifier les lignes à modifier (probablement github.user et github.token) ou créer un nouveau fichier les deux lignes en elle.
Si vous préférez la ligne de commande "git config", vous pouvez éviter tout déplacement de fichier en omettant l'option "--global".
Vous devez déterminer si vous avez réellement deux paires de clés ssh ou seulement deux courriels que vous souhaitez utiliser. Une paire de clés ssh est liée aux comptes comme décrit ici .
La paire de clés ssh (en particulier la clé privée) donne essentiellement à votre client git la permission de se connecter à github, et donc à Push. Ceci est distinct de l'identité de l'utilisateur, qui est simplement le courrier électronique dans vos messages de validation.
Si vous avez deux paires de clés SSH, chacune liée à un compte, suivez les instructions ces pour créer un fichier ~/.ssh/config
. L’essentiel est d’utiliser un ssh psuedo-Host différent pour chaque compte:
# Default GitHub user (joe)
Host github.com
HostName github.com
User git
IdentityFile /Users/joe/.ssh/id_rsa
# Client user (client)
Host github-client
HostName github.com
User git
IdentityFile /Users/joe/.ssh/id_rsa_client
Vous utilisez ensuite deux télécommandes correspondantes:
git clone [email protected]:joe/my_repo.git
et
git clone git@github-client:client/his_repo.git
Si vous voulez simplement utiliser deux courriels, vous pouvez simplement donner à chaque clone un .git/config
Séparé avec les paramètres [user]
Désirés.