如何在Git Bash上更改用户?

时间:2016-09-10 04:20:34

标签: git-bash

enter image description here

我想退出实际用户,以便我可以与其他用户登录。

我在Git bash中看到的是:

MINGW64 ~/Documents/NetBeansProjects/ConstructorJava (master)
git push -u origin/master
remote: Permission to Fre1234/ConstructorJava.git denied to Fre123.  
Fatal: unable to access https://github.com/Fre1234/ConstructorJava.git/": The requested URL returned error: 403

5 个答案:

答案 0 :(得分:52)

检查git remote -v返回的内容:用于推送到http网址的帐户通常会嵌入到远程网址中。

https://Fre123@github.com/...

如果是这种情况,请设置一个会强制Git在推送时要求帐户使用的网址:

git remote set-url origin https://github.com/<user>/<repo>

或者使用Fre1234帐户:

git remote set-url origin https://Fre1234@github.com/<user>/<repo>

同时检查您是否安装了Git For Windows,无论是否有凭据助手as in this question

OP Fre1234添加in the comments

  

我终于找到了解决办法   转到:Control Panel -> User Accounts -> Manage your credentials -> Windows Credentials

     

Generic Credentials下,有一些与Github相关的凭证,
  点击它们,然后点击&#34; Remove&#34;。

这是因为Git for Windows的默认安装设置了Git-Credential-Manager-for-Windows 请参阅git config --global credential.helper输出(应为manager

答案 1 :(得分:3)

对于Mac用户

我正在使用Mac,并且在尝试从Android Studio推送项目时遇到了同样的问题。该其他用户先前登录Github的原因,其凭据已保存在“钥匙串访问”中。

您需要从“钥匙串访问”中删除这些凭据,然后尝试推送。

希望对Mac用户有帮助。

答案 2 :(得分:2)

对于Mac用户

我正在使用Mac,并且在尝试从Android Studio推送项目时遇到了同样的问题。原因是另一个用户先前已登录GitHub,其凭据已保存在Keychain Access中。

解决方案是删除该过程的钥匙串中的所有信息

enter image description here

答案 3 :(得分:1)

对于任何操作系统

这对我有帮助,所以我把它放在这里,以防万一。 为两个帐户添加rsa密钥后,请在.ssh目录中为两个帐户(.ssh/config)添加一个配置文件

# First account
Host github.com-<FIRST_ACCOUNT_USERNAME_HERE>
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_user1
   
# Second account
Host github.com-<SECOND_ACCOUNT_USERNAME_HERE>   
   HostName github.com
   User git
   IdentityFile ~/.ssh/id_rsa_user2

确保使用正确的用户名和RSA文件。接下来,您可以打开存储库根目录上的terminal / git bash并检查要从哪个帐户推送

git config user.email

假设这返回第一位用户的电子邮件,而您想从第二位用户发送。更改本地user.nameuser.email

git config user.name "SECOND_USER"
git config user.email "SECOND_USER@example.com"

(这不会更改全局配置,您可以将第一个用户设置为全局用户)。完成后,您可以使用git config user.email进行确认,它应该返回第二个用户的电子邮件。您已经准备好与第二个用户一起推送到GitHub。其余的都是相同的旧git addgit commitgit push。 要从第一个用户推送,请再次更改本地user.name并遵循相同的步骤。 希望能有所帮助:)


如果上述步骤仍无法解决,请检查是否已在GitHub门户中上载RSA密钥。 Refer to GitHub documentation

然后,清除您的ssh缓存密钥Reference

ssh-add -D

然后为您添加2个ssh密钥

ssh-add ~/.ssh/id_rsa_user1
ssh-add ~/.ssh/id_rsa_user2

然后输入您的终端:

ssh -T git@github.com-<SECOND_ACCOUNT_USERNAME_HERE>

您应该看到以下输出:

Hi <SECOND_USERNAME>! You've successfully authenticated, but GitHub does not provide shell access.

然后,将正确的远程分配给本地存储库。确保在.ssh/config旁边放置与Host文件中输入的用户名相同的用户名。在以下情况下,git@github.com-<SECOND_ACCOUNT_USERNAME_HERE>

git remote rm origin
git remote add origin git@github.com-<SECOND_ACCOUNT_USERNAME_HERE>:/your_username/your_repository.git

答案 4 :(得分:0)

如果你想在 git Bash 上更改用户。你只需要在 git bash 上配置特定的用户和电子邮件(全局)。

library(dplyr)

df %>%
  mutate(category1 = between(Size, 35, 55) & Type == 'RX1' & 
           Batch == 'Nov' & is.na(PI1) & !grepl('RDT_', Source)) %>%
  group_by(Date = as.Date(DateTime)) %>%
  summarise(Count_Order = n(), 
            Count_Done = sum(Status == 'Done'), 
            `Total_%` = Count_Done/Count_Order * 100, 
            Count_Category1 = sum(category1),
            Count_Done_Category1 = sum(category1 & Status == 'Done'),
            `%Category1` = Count_Done_Category1/Count_Category1 * 100) %>%
  replace(is.na(.), 0)

#   Date       Count_Order Count_Done `Total_%` Count_Category1 Count_Done_Catego… `%Category1`
#  <date>           <int>      <int>     <dbl>           <int>              <int>        <dbl>
#1 2020-08-01           2          1      50                 0                  0            0
#2 2020-08-02           2          2     100                 0                  0            0
#3 2020-08-03           3          2      66.7               0                  0            0
#4 2020-08-04           1          1     100                 1                  1          100

注意:不需要从钥匙串中删除用户。