一、问题描述
最近在做小程序项目过程中,使用小程序开发中工具提交代码管理时,出现了“似乎认证方式出现问题。请检查远程仓库仓库的认证方式和设置一致,如果有用户名和密码,请确保正确的设置了用户名和密码。…”,“Error:callback returned unsupported credentials type”的错误提示。
提示我的git仓库认证类型出错。开始检查“网络与认证” ,我采用的是远程仓库是https链接,通过用户名与密码方式认证。
检查小程序代码管理后台,检查远程仓库链接地址并重新设置用户名和密码。
检查仓库地址
重置用户名与密码
然后,再次提交代码或拉取代码时候,发现仍然报错。同时奇怪的发现,我原来项目列表中的其他所有项目都出现同样的报错提示。通过查询资料后,我通过“终端打开”,打开命令行工具
输入:git remote -v
查看当前git 远程仓库的访问方式
当前项目git 远程仓库的访问方式居然是SSH,而我认证的方式是采用HTTPS和用户名密码方式认证,所以导致小程序代码管理提交代码认证报错了,看来找到了原因所在。
二、解决问题:将Git 仓库从ssh改为https验证方式
尝试通过终端命令:
git remote set-url xxx https://xxxxxxxxxxxxxxxxxxxxxxxx.git
xxx代表你的远程仓库名称,和远程仓库https链接地址。
不幸的是,尽管我为远程仓库添加了一个https url,但它仍然显示前面有”ssh“的url。
这不得不让我重新思考,为什么即使我将url添加为https,它仍然显示ssh?我试着用git remote set-url修改它,什么也没改变。我完全删除了URL,然后读取了它,它仍然在其中添加了”ssh“。我检查了git配置文件,URL是正确写入的,其中包含https,那么为什么它在命令行上显示ssh?
经过几番折腾,终于发现可能是在以前的项目中,使用insteadOf命令将每个https替换为ssh,这给本地git仓库做了了全局设置。
(这个文件一般位于:c:/Users/用户名/.gitconfig,处理此文件也可以)
我使用的命令是这样的:
git config –global url.”ssh://git@”.insteadOf “https://”
解决方案是通过 :git config –global –edit
然后手动删除该行代码
在此界面中,键入 i, 启用编辑模式,删除代码后键入Esc,:wq 保存即可。
此时,返回小程序开发者工具,通过终端界面再次打开终端输入,输入:git remote -v
可以看到,远程仓库 访问方式,改成了https方式。
至此,终于解决了小程序代码推送报认证错误的问题。希望可以帮助到用到的人 :)