如何覆盖一个repo的全局Git凭据?

时间:2015-05-12 16:46:59

标签: git config credentials

如果我设置

git config --global credential.username my_username

选项,然后使用--local选项为一个存储库覆盖它没有任何区别 - 它仍然在尝试提交或推送时使用全局凭据。我怎么能改变这个?

2 个答案:

答案 0 :(得分:2)

repo本地配置对我不起作用。在尝试了stackoverflow的各种方法后,最后通过从ssh切换到https并使用 credential.helper 来实现:

第1步,将git远程从ssh更改为https:

$ git remote -v
    git@github.com:#####/###.git (push)

$ git remote rm origin
$ git remote add origin https://username@github.com/######/###.git

第2步,让 credential.helper 帮助记住密码,避免烦人的重复询问。

$ git config --global credential.helper cache
$ git config --global credential.helper 'cache --timeout 7200'

默认情况下,凭据将保存在〜/ .git-credentials中。它将被创建并写入。

但请注意使用此帮助程序将以未加密的方式存储您的密码在磁盘上,仅受文件系统权限的保护。如果这可能不是一个可接受的安全权衡。

答案 1 :(得分:0)

  

<强> credential.username

     

如果没有为网络身份验证设置用户名,请默认使用此用户名

您可能已在user.name上配置了--global,因此credential.username上的--local未被使用。试试这个:

git config --local user.name my_username