使用Sourcetree推送提交遇权限问题:私人仓库无法推送
解决Sourcetree多GitHub账号下个人仓库无法推送的问题
问题根源
你推送个人仓库SKdaaaas/Fin.git时,Sourcetree默认调用了公司的GitHub账号KKwwdasd,该账号没有你个人仓库的推送权限,因此触发权限拒绝错误。
具体解决步骤
检查并修改仓库远程URL
打开Sourcetree,选中个人仓库,右键选择「仓库设置」,进入「远程仓库」标签:- 若使用HTTPS地址:将URL修改为
https://SKdaaaas@github.com/SKdaaaas/Fin.git,强制推送时使用个人账号凭据 - 若使用SSH地址:确保地址对应个人账号的SSH密钥配置,后续可结合SSH配置文件指定密钥
- 若使用HTTPS地址:将URL修改为
绑定仓库到个人GitHub账号
- 打开Sourcetree的偏好设置(Windows:「工具」→「选项」;Mac:「Sourcetree」→「偏好设置」)
- 进入「账户」标签,确认个人GitHub账号已正确添加(含SSH密钥或HTTPS访问令牌)
- 回到个人仓库的「仓库设置」→「高级」,在「使用的账户」下拉菜单中选择你的个人GitHub账号,保存设置
清除旧凭据缓存(HTTPS方式适用)
- Windows:打开「凭据管理器」→「Windows凭据」,找到GitHub相关的公司账号条目,删除后重新推送,系统会提示你选择个人账号的凭据
- Mac:打开「钥匙串访问」,搜索
github.com,删除公司账号的缓存条目,重新推送时选择个人账号的凭据
SSH密钥配置检查(SSH方式适用)
- 确认个人GitHub账号的「SSH和GPG密钥」中已添加你的个人SSH公钥
- 在Sourcetree的「账户」设置里,个人账号对应的SSH密钥需为个人密钥(而非公司密钥)
- 若存在多SSH密钥冲突,可修改
~/.ssh/config(Mac/Linux)或C:\Users\<你的用户名>\.ssh\config(Windows)添加配置:
然后将个人仓库的远程URL改为Host github-personal HostName github.com User git IdentityFile ~/.ssh/id_rsa_personalgithub-personal:SKdaaaas/Fin.git,强制使用个人密钥连接
内容的提问来源于stack exchange,提问作者SiemowitJarilo
相关产品推荐
相关产品推荐

