首先这个情景 我觉得概率很低的,可能会发生在我这样的新手身上,
问题详情 先上图!
push的时候出现的问题首先 这个仓库 是我自己创建的 ,我clone 下来 新增了 readme.md 文件,commit 后准备push 报错!!!
403 无权限 ,
第一步 :权限问题----- 管理员没授予你权限
所以怀疑 是我老大 没加我的读写权限,果然!没加上我的权限(我是才入职公司的情况)
之后 权限添加上了 重试 还是报错!!!
第二步:你的当前用户 没权限
不是说已经给你权限了吗?大家想一下 ,是不是你本地的git用户 不是你的用户(这种情况 我觉得 也只有 我这种 才入职新公司 而且没有配备新电脑 而是 用的 之前同事留下的电脑 会发生!!!)
git config --global user.name
git config --global user.email
看看与你的 托管代码的网站的用户名 和邮箱 是否相同?
我的就不同!!!所以 我以为 这个就解决了
就设置了 邮箱和名字
git config --global user.name "your name"
git config --global user.email "your email"
这个时候 再次查看 user.name 发现已经修改成功了 ,但是 push之后还是无效
第三步: 是否是密码错误
很不适应 不用ssh 方式 所以对http 怎么取判断用户的也不理解 ,而且又是用的mac ,
而且让同事 在自己电脑上 commit test 我这边 可以pull 但是push 还是报错!!!
我就很纳闷!!!
问题 就更细致了 我又开始 google ,
最后 感谢 git 缓存密码导致的不能和远程仓库交互unable to access... 403错误 这个文章
解决了我的疑惑!!!
原来 每次 pull push 等操作的时候 没有跟你要密码 并不是 http 没有ssh安全 ,在global 的config
在mac的路径是 ~/user/你的账户名/.gitconfig
用vim 打开查看
git config --global --editer
注意 这个字段!!!
credential.helper
credential.helper把 含有 这几个 字段 的几行配置 全删掉
保存 这时候 再用命令检查!!!
git config credential.helper
如果为空 那么说明清空了 ! 重新push
如果不为空 说明没清空 说明别的地方 还有配置 查找 还有几个 文件
find ~ -iname ".gitconfig"
把其他的地方的 字段 也删掉 就解决了
现在 你push 的时候 会让你输入用户名密码 !!!
第四步: 总结发现
最后发现本来这个 credential.helper 字段的后面 跟着 osxkeychain ,???????
这是什么意思?就是你的钥匙串
就是这个应用!!打开 是不是保存的 错误的用户名和密码!!! 删掉!!!
把你团队的git 上的 密码 删除 就可以了!!!
网友评论