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

How to overwrite global Git credentials for one repo?

如果我设置

git config --global credential.username my_username

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

credential.username

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 中。它将被创建并写入。

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