如何在终端切换 git 用户?

Mow*_*zer 82 terminal git command-line github macos

我正在尝试从命令行将项目推送到远程存储库。

从我的本地目录中,我点击了:

$ git push
Run Code Online (Sandbox Code Playgroud)

并获得以下错误:

远程:username1/repo.git 的权限被拒绝给 username2。
致命:无法访问“ https://github.com/username1/repo.git/ ”:
请求的 URL 返回错误:403

username1我的 github 帐户用户名在哪里托管我想要推送到的存储库,并且username2是我曾经在这台机器上使用的旧帐户。

我在 Macbook Air 上使用 OS X Yosemite (v10.10.5)。我更喜欢使用https而不是ssh

如何更新到username1以便我可以成功推送到我的遥控器?

编辑:明确地说,我不是在谈论简单地编辑config user对象,例如,

$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "billyeveryteen@example.com"
Run Code Online (Sandbox Code Playgroud)

它们与身份验证无关。我的问题涉及写入远程存储库所需的用户身份验证

Sai*_*ira 80

除了使用git config以下命令从终端更改用户名和电子邮件之外:

$ git config --global user.name "Bob"
$ git config --global user.email "bob@example.com"
Run Code Online (Sandbox Code Playgroud)

您需要从钥匙串中删除授权信息。这也是我一直在努力解决的问题,直到我发现我的钥匙串中也有证书。

打开钥匙串访问,单击所有项目并搜索git。你会得到一些这样的物品:

截屏

删除它们。现在尝试推送 repo,git 会要求您为用户输入密码,您就可以开始了。

  • 我有多个帐户我该怎么办 (6认同)
  • Windows 用户呢? (2认同)

小智 44

对于 cli 用户,只需使用这个: git config credential.username 'Billy Everytee'


小智 22

列出您的 git 配置。

git config --list
Run Code Online (Sandbox Code Playgroud)

更改用户名和电子邮件全局

git config --global user.name "Nanhe Kumar"
git config --global user.email "info@nanhekumar.com"
Run Code Online (Sandbox Code Playgroud)

更改当前存储库的用户名和电子邮件

git config  user.name "Nanhe Kumar"
git config  user.email "info@nanhekumar.com"
Run Code Online (Sandbox Code Playgroud)

如果您使用的是位存储桶,请更改您的 repo url。

nano .git/config
Run Code Online (Sandbox Code Playgroud)

该文件将是这样的。

[core]
        repositoryformatversion = 0
        fileMode = false
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = https://nanhe@bitbucket.org/nanhekumar/myproject.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master`

    [user]
            name = Nanhe Kumar
            email = info@nanhekumar.com

Run Code Online (Sandbox Code Playgroud)

  • 考虑到全球和本地回购范围,这是最彻底的答案。 (2认同)

小智 20

对于 Windows 用户:
按照说明进行操作:
控制面板 >> 用户帐户 >> 凭据管理器 >> Windows 凭据 >> 通用凭据

删除 git 凭据。
下次当您推送 repo 时,它会要求您提供凭据。
详细解释的答案参考


小智 6

其他合理的选项,如果您只想在一个项目上使用“新用户”,您可以通过仅为您正在工作的项目目录配置它来实现。例如:

 git config --local user.name "Mike"
 git config --local user.email "mike@example.com"
Run Code Online (Sandbox Code Playgroud)

请注意,我使用的是 --local 而不是 --global。