根据文件夹设置git凭据

but夫

是否可以使包含多个存储库的文件夹使用一组凭据,而让另一个文件夹用户使用不同的帐户?例如,我想在Mac上有一个用于工作仓库的文件夹,一个用于个人的文件夹,并且git用户名和密码会根据我所在的文件夹自动切换。

but夫

经过大量搜索后,我找到了我想要的东西(但可能与我最初的要求不完全相同)。我使用的解决方案是使用ssh。Github有一些很好的帮助文档,请按照此处(在身份验证下)进行操作,但是基本上您必须1.为每个帐户生成一个ssh密钥,并将其添加到ssh代理** 2.将ssh密钥添加到github帐户中3.在Mac上更新〜/ .ssh / config中的配置文件(向下滚动至“在GitHub或Heroku上的多个帐户之间进行选择”)

  • 注意:向ssh代理添加ssh密钥是暂时的。它们仅在代理运行时才持续。如果您杀死它或重新启动计算机,它们将丢失,直到您重新添加它们。

为了解决这个问题,我创建了一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章