是否可以使包含多个存储库的文件夹使用一组凭据,而让另一个文件夹用户使用不同的帐户?例如,我想在Mac上有一个用于工作仓库的文件夹,一个用于个人的文件夹,并且git用户名和密码会根据我所在的文件夹自动切换。
经过大量搜索后,我找到了我想要的东西(但可能与我最初的要求不完全相同)。我使用的解决方案是使用ssh。Github有一些很好的帮助文档,请按照此处(在身份验证下)进行操作,但是基本上您必须1.为每个帐户生成一个ssh密钥,并将其添加到ssh代理** 2.将ssh密钥添加到github帐户中3.在Mac上更新〜/ .ssh / config中的配置文件(向下滚动至“在GitHub或Heroku上的多个帐户之间进行选择”)
为了解决这个问题,我创建了一个bash函数,并将其添加到所有shell的bash rc文件中,因此我可以将其作为终端命令来调用。代码在这里:
#!/bin/bash
function addSshKeysToAgent() {
echo "starting ssh agent:"
echo ""
eval 'ssh-agent -s'
echo ""
echo "adding identities: "
ssh-add -K ~/.ssh/personal_rsa
ssh-add -K ~/.ssh/work_rsa
echo ""
echo "Private keys loaded into SSH: "
ssh-add -l -E md5
echo ""
echo "ssh keys added to ssh agent."
}
function clone() {
addSshKeysToAgent
git clone gh-work:Company/$1
}
用您的ssh密钥文件的名称替换personal_rsa和work_rsa,用您的组织名称(如果要这样做)替换Company,这是您更新的配置文件来的。这是我的配置文件的外观:
Host *
Port 22
ServerAliveInterval 60
ForwardAgent yes
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/personal_rsa
IdentityFile ~/.ssh/work_rsa
Host gh-personal
Hostname github.com
User git
IdentityFile ~/.ssh/personal_rsa
AddKeysToAgent yes
UseKeychain yes
Host gh-work
Hostname github.com
User git
IdentityFile ~/.ssh/work_rsa
AddKeysToAgent yes
UseKeychain yes
有了这些,您应该能够使用以下命令从终端克隆一个仓库:
clone reponame.git
我衷心希望这可以帮助某人。我花了几乎一整天搜索和黑客的东西放在一起得到这个工作的,当我在写这个回应,我碰到一个真正伟大的要点做正是我想要在这里
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句