Git pull --rebase命令认证失败,请求排查Linux环境下配置问题
你的操作有三个核心错误:
- 最后一条
git pull命令语法完全错误:git pull --rebase的正确格式是git pull --rebase <远程仓库名> <分支名>,你额外加了一个git@gitserv:<company>/<repository>.git,属于多余参数,直接导致命令无法正常解析。 - 远程仓库地址与SSH配置不匹配:你添加的
origin是HTTPS地址(https://github.com/...),但你想使用SSH密钥认证。Git会优先使用origin地址对应的认证方式,而HTTPS方式下GitHub已禁用密码登录,因此触发错误提示。 - SSH配置的
HostName写错了:GitHub的SSH主机名是github.com,你写成了git.com,这会导致SSH无法正确连接服务器,你的密钥配置自然无法生效。
修正后的完整操作步骤:
- 修正SSH配置文件
编辑~/.ssh/config,把错误的HostName改成github.com:
Host gitserv HostName github.com IdentityFile ~/.ssh/id_rsa.github IdentitiesOnly yes AddKeysToAgent yes
- 重新设置远程仓库地址(SSH格式)
先删除错误的origin,再添加匹配SSH配置的远程地址:
git remote remove origin git remote add origin git@gitserv:<company>/<repository>.git
- 正确执行拉取并变基
用标准格式拉取远程dev分支并变基:
git pull --rebase origin dev
- 推送本地代码到远程dev分支
拉取变基完成后,推送你的补丁代码:
git push origin dev
如果坚持想用HTTPS地址,在系统要求输入密码时,不要输入GitHub账号密码,而是输入你配置的**经典个人访问令牌(ghp_开头)**即可,但更推荐使用SSH方式,避免重复输入令牌。
内容的提问来源于stack exchange,提问作者Viacheslav
相关产品推荐
相关产品推荐

