是否可以让包含多个repos的文件夹使用一组凭据,并让另一个文件夹用户使用另一个帐户?例如,我想在我的mac上有一个用于工作回购的文件夹和一个用于个人的文件夹,并根据我所在的文件夹自动切换git用户名和密码。
答案 0 :(得分:1)
经过大量的搜索,我找到了我想要的东西(但也许不是我最初的要求)。我使用的解决方案是使用ssh。 Github有一些很好的帮助文档可以跟随here(在身份验证下),但基本上你必须这样做 1. Generate每个帐户的ssh密钥并将其添加到ssh代理* 2. Add你的github帐户的ssh密钥 3.在mac上Update〜/ .ssh / config中的配置文件(向下滚动到"在GitHub或Heroku&#34上的多个帐户之间进行选择;)
为了解决这个问题,我创建了一个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
}
将personal_rsa和work_rsa替换为您的ssh密钥文件和公司的名称,并附上您的组织名称(如果这是您要执行的操作),该名称来自您更新的配置文件。以下是我的配置文件的外观:
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
我真诚地希望这可以帮助别人。我花了差不多一整天的时间来搜索和黑客攻击才能使这个工作正常,当我写这个回复时,我遇到了一个非常好的要点,就是按照我想要的那样做here
答案 1 :(得分:1)
我可能是错的,但是我只是创建了不同的git配置文件,并在〜/ .gitconfig全局文件中定义了条件。看起来像这样:
[includeIf “gitdir:<path_to_organisation1_directory_with_repos>“]
path = <path_to_organisation1_special_git_config_file>
[includeIf “gitdir:<path_to_organisation2_directory_with_repos>“]
path = <path_to_organisation2_special_git_config_file>
答案 2 :(得分:-1)
This指南可能是您正在寻找的指南。
请看一下git config --local
部分,该部分将在您执行命令的仓库中应用更改。
答案 3 :(得分:-1)
为特定文件夹配置git配置太简单了。你可以使用两个git命令来实现这一点。只需输入您想要更改git帐户信息的目录,然后执行以下操作:
git config --local user.email "yourmail@example.com"
git config --local user.name "yourName"
我认为这会有所帮助。
干杯!