在 Windows 终端中的 git 帐户之间切换的简单方法?

luk*_*z21 2 windows git logging cmd

有没有一种快速的方法可以在 Windows 上的 cmd 中注销并使用不同的帐户重新登录 git?我试过:

git config --global --unset user.name
git config --global --unset user.mail       
git config --global --unset credential.helper
Run Code Online (Sandbox Code Playgroud)

所以我知道我应该使用 old_user_name 注销?然后我用了:

git config --global user.name "new_user_name"
git config --global user.email "new_email"
git push origin master
Run Code Online (Sandbox Code Playgroud)

我做了一次按摩:

远程:old_user_name 对 new_user_name/new_repo.git 的权限被拒绝。致命:无法访问'https://github.com/new_user_name/new_repo.git/':请求的URL返回错误:403

这意味着我仍然使用旧帐户登录。我还可以做些什么?

tor*_*rek 5

user.name设置user.email不是任何方式、形状或形式的登录。(这里的credential.helper设置很有用,但仅仅取消设置可能是不对的。)

每当您进行提交(例如,通过运行git commit)时,Git 需要知道要在新提交中放入什么用户名和电子邮件地址。Git 通过当时的阅读user.name和获取这些。这就是它们的全部用途:在新的提交user.email中设置这些。1

当您运行时git push,您确实(通常是2 个)需要进行身份验证,以便将新提交发送到其他某个Git存储库。 Git 不执行此身份验证。 Git 依赖其他程序来完成它。这些其他计划包括:

  • Web 服务器,通过httpsURL:在这里,Git 必须将用户名和密码或 PAT 或其他一些秘密发送Web 服务器。Git 从以下位置获取这些内容:

    1. URL(如果它们位于 URL 中);
    2. 您可以配置的凭据助手:Windows Git 附带 Windows 特定的凭据助手,macOS Git 附带 macOS 特定的凭据助手,等等;或者
    3. 作为最后的手段,从键盘读取用户名和密码。

    一般来说,正确的方法是使用凭证助手。请参阅gitcredentials 文档以及适用于您的特定 Git 安装的特定凭证帮助程序。方法 #1 的问题在于,任何查看您计算机的人都可以在 URL 中看到密码;方法#3 的问题是显而易见的。

    取消设置凭据帮助程序将为您提供系统的默认设置。这可能不是最好的做法。对于 Windows 系统,请参阅从 Git 中删除凭据,特别是此处 VonC 的答案

  • Secure Shell (SSH):在这里,Git 只是运行命令ssh。如今,Windows 系统自带了自己的 ssh 命令,而 Git-for-Windows 也自带了自己的 ssh 命令,因为较旧的 Windows 系统要么完全缺乏 ssh,要么提供的版本不足,因此在 Windows 系统上,您必须确保配置并使用正确的 ssh(无论您的安装是什么)。

由于您使用的是https://URL,因此您需要设置您的凭证系统。如果您想使用ssh://URL,请设置 ssh。


1请注意,它git rebase的工作原理是将现有提交复制到新的提交和(据称/预期)改进的提交,因此这也使用这些设置:它正在进行新的提交。

2人们可以建立一个完全开放的匿名网络,任何人都可以随时推送任何内容,但这些网络太容易被滥用,因此在实践中没有人这样做。