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

IntelliJ IDE中Git提交归属正确但推送显示为其他用户的问题求助

排查Git提交与推送归属不一致的问题

这种提交身份和推送身份对不上的情况我之前也踩过坑,其实Git里提交身份和推送身份是完全独立的两个机制:提交靠本地Git配置的user.name/user.email,而推送则取决于你连接Git服务器时的身份验证方式(SSH密钥对应服务器用户,或HTTP认证账号)。结合你的情况,咱们一步步排查:

1. 先确认推送时服务器识别的用户是谁

先在终端执行这条命令,直接测试SSH连接的身份:

ssh -T git@你的Git服务器地址

比如返回Hi User1! You've successfully authenticated...,那就说明当前你的SSH连接被服务器识别成了User1——这就是问题根源,和你本地的提交配置无关。

2. 排查本地SSH密钥的使用逻辑

检查SSH配置文件

打开本地的SSH配置文件(Linux/macOS是~/.ssh/config,Windows是C:\Users\你的用户名\.ssh\config),看有没有针对你的Git服务器的专属配置,是不是指定了错误的密钥文件:

Host your-git-server
    HostName xxx.xxx.xxx.xxx
    User git
    IdentityFile ~/.ssh/user1_id_rsa  # 这里如果是User1的密钥就错了

如果有这种配置,把IdentityFile改成你自己的私钥路径,比如~/.ssh/my_id_rsa。

检查SSH代理缓存的密钥

如果你用了ssh-agent管理密钥,可能缓存了User1的密钥,导致优先用它连接:

  • 先查看当前加载的密钥指纹:ssh-add -l
  • 找到User1对应的指纹,删掉它:ssh-add -d 对应指纹
  • 再添加你自己的密钥:ssh-add ~/.ssh/my_id_rsa

3. 检查IntelliJ的Git/SSH配置

IntelliJ有时候会用自己独立的SSH配置,和系统的不统一:

  • 打开Settings → Version Control → Git,看SSH executable选项:
    • 如果选的是Native,它会用系统的SSH配置,那你按照上面的系统SSH配置修改就行;
    • 如果选的是Built-in,去Settings → Tools → SSH Configurations,找到对应Git服务器的配置条目,确认Authentication type选的是Key pair,并且私钥路径是你自己的密钥文件。
  • 另外,如果你之前用过HTTP方式推送,IntelliJ可能保存了旧的认证信息:去Settings → Appearance & Behavior → System Settings → Passwords,找到对应Git服务器的密码条目删掉,重新推送时会提示你输入正确的账号密码(如果是HTTP认证的话)。

4. 确认Git服务器端的密钥绑定

如果上面的排查都没问题,那可能是服务器端的配置错了:联系Git服务器管理员,检查你的SSH公钥是不是被错误添加到了User1的账号下,而不是你自己的账号。服务器是根据公钥绑定的用户来识别推送身份的,这个环节错了的话,无论你本地怎么改都没用。

5. 临时验证方法

你可以在终端用指定密钥的方式手动推送,来定位问题:

GIT_SSH_COMMAND="ssh -i ~/.ssh/my_id_rsa" git push

如果这次推送归属变成了你,说明是IntelliJ的SSH配置没选对密钥;如果还是显示User1,那肯定是服务器端的密钥绑定有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:27:29