如何覆盖一个 repo 的全局 Git 凭据?
How to overwrite global Git credentials for one repo?
如果我设置
git config --global credential.username my_username
选项,然后用 --local
选项为一个存储库覆盖它没有任何区别 - 它在尝试提交或推送时仍然使用全局凭据。我该如何更改?
If no username is set for a network authentication, use this username by default
可能您在 --global
上配置了 user.name
,因此未使用 --local
上的 credential.username
。试试这个:
git config --local user.name my_username
repo 本地配置对我不起作用。在尝试了 Whosebug 的各种方法之后,最终它通过从 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 中。它将被创建并写入。
但请注意使用此帮助程序将将您的密码未加密存储在磁盘上,仅受文件系统权限保护。如果这可能不是可接受的安全权衡。
如果我设置
git config --global credential.username my_username
选项,然后用 --local
选项为一个存储库覆盖它没有任何区别 - 它在尝试提交或推送时仍然使用全局凭据。我该如何更改?
If no username is set for a network authentication, use this username by default
可能您在 --global
上配置了 user.name
,因此未使用 --local
上的 credential.username
。试试这个:
git config --local user.name my_username
repo 本地配置对我不起作用。在尝试了 Whosebug 的各种方法之后,最终它通过从 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 中。它将被创建并写入。
但请注意使用此帮助程序将将您的密码未加密存储在磁盘上,仅受文件系统权限保护。如果这可能不是可接受的安全权衡。