git错误:HTTP Basic: Access denied

上周五修改了gitlab的用户密码,今天发现操作git远程仓库都报错拒绝,错误信息如下:

1
2
remote: HTTP Basic: Access denied
fatal: Athentication failed for 'https://************'

直觉告诉我,是改密码引起。网上查了资料,确实 git 会把第一次输入过的用户名密码存储起来,再次使用 git 命令的时候,会使用存储的用户名密码,然而当 git 的密码修改后,原来存储的密码肯定匹配不了,于是直接报没有权限终止操作。网上类似的帖子很多,但是不是都有效,在多次尝试后,终于解决,解决办法如下:

首先我因为有两台电脑,一台 win7,一台 win10,不同操作系统解决方式还不一样,也是坑了我很多时间。。。

win 10 下的解决办法

解决办法很简单,一句命令搞定:

1
git config --system -unset credentia.helper

不过要注意的是在 win10 中,这个命令需要在管理员权限下运行,否则报错:

1
error: could not lock config file C:/Program Files/Git/migw64/etc/gitconfig: Permission denied

在 linux 下使用 sudo 可以切换到管理员权限,但是在 win10 上,只能先找到 cmd 的快捷方式,然后右键,以管理员身份运行。比如,在左下角windows符号上右键 -> Windows PowerShell(管理员)

运行后,命令的前面的路径会显示为:PS C:\Windows\system32>

win 7 下的解决办法

使用刚才在 win 10 上的解决办法,在 win 7 上尝试无效。。。
win 7 下采用的办法是直接修改凭据:

  1. 进入 控制面版 -> 所有用户 -> 凭据管理
  2. Windows 凭据 下,找到 gitlab 对应的凭据
  3. 编辑,修改密码,保存。
  4. done。

然后执行下刚才的 git pull 命令,妥妥滴拉下来。