You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github ECDSA主机密钥不匹配及Git操作故障求助

解决Github SSH主机密钥不匹配及Git推送/拉取失败问题

问题详情

执行git push时出现SSH主机密钥不匹配警告,导致连接异常:

Warning: the ECDSA host key for 'github.com' differs from the key for the IP address '140.82.112.4'
Offending key for IP in /Users/joyliu/.ssh/known_hosts:13
Matching host key in /Users/joyliu/.ssh/known_hosts:16

尝试删除known_hosts指定行、ssh-keygen -R github.com及重新写入主机密钥后,警告仍存在,同时出现Git拉取/推送失败:

fatal: refusing to merge unrelated histories
! [rejected]        master -> master (non-fast-forward)

分步解决方案

1. 清理冲突的SSH主机密钥(针对IP地址条目)

警告指向的是**IP地址140.82.112.4**的旧密钥冲突,之前的操作仅清理了github.com域名的条目,需补充清理IP相关条目:

  • 删除IP对应的旧密钥:
    ssh-keygen -R 140.82.112.4
    
  • 再次清理github.com域名的旧密钥:
    ssh-keygen -R github.com
    
  • 重新获取并写入Github的最新主机密钥:
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    
  • 验证SSH连接是否正常:
    ssh -T git@github.com
    
    若返回Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.则说明SSH问题已解决。

2. 解决Git分支历史冲突与推送失败

情况1:需要合并本地与远程的无关历史

如果本地分支和远程分支提交历史不相关,允许合并:

git pull origin master --allow-unrelated-histories

执行后手动解决文件冲突,提交合并结果:

git add .
git commit -m "Merge remote master branch"

最后推送:

git push origin master

情况2:放弃本地更改,直接同步远程分支

若本地内容无需保留,可强制覆盖本地分支为远程版本(注意:此操作会丢失本地未提交/未推送的更改):

git reset --hard origin/master
git push origin master

内容的提问来源于stack exchange,提问作者Joy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 23:03:27