git 服务器删除用户名和密码,本质上是清理本地缓存或移除远程仓库的访问凭证,具体操作取决于你用的是HTTPS还是SSH方式,下文拆解两种场景的完整清除步骤。
本地缓存清理:让git忘掉旧账号信息
你八成遇到过这种情况,电脑上原来的同事用他的账号拉过代码,你接手后输入自己的用户名和密码,git却一直提示认证失败,这就是因为Windows凭据管理器或macOS钥匙串里,存着旧账号的登录信息,git默认优先读取缓存的凭据,导致你输入的新账号根本没机会生效。
Windows系统下删除已保存的git用户名和密码
在Windows上,git的账号密码通常存放在“控制面板 – 用户账户 – 凭据管理器 – Windows凭据”里,列表里能找到git:https://你的仓库地址这样的条目,点击下拉箭头,选择“删除”即可,删除后,下次执行git push或git pull时,git会重新弹出输入框让你填写用户名和密码。
用命令行的方式也能达到一样的效果,打开CMD或PowerShell,执行:
git config --global --unset credential.helper
这条命令会清掉全局的凭据助手配置,注意,它只是取消配置,不会立刻抹掉已经存在凭据管理器里的旧账目,所以最好两种操作都做一遍。
macOS系统下删除git缓存账号
Mac上,git的凭据存在“钥匙串访问”应用里,打开钥匙串访问,在右上角搜索框输入git,会列出所有与git相关的密钥项,找到对应仓库的条目,右键删除,更直接的方式是执行命令:
git credential-osxkeychain erase
执行后输入host=github.com(改成你自己的服务器地址),再按两下回车,就能清除该域名的全部凭据,这个命令不会输出成功提示,执行完就代表生效了。
Linux系统下清理git凭据文件
Linux桌面环境下,git的凭据缓存文件在~/.git-credentials里,打开这个文件,你会看到明文存放的http://用户名:密码@仓库地址,直接删除这个文件,或者用vim编辑只删掉对应服务器的行,同时执行:
git config --global --unset credential.helper git config --system --unset credential.helper
全局和系统级的配置都清一遍,确保没有残留。
远程仓库地址携带账号密码的移除
有时候情况更隐蔽你的远程仓库URL里直接写死了用户名和密码,执行git remote -v查看:
git remote -v

如果输出显示的地址长这样http://admin:123456@192.168.1.100/group/project.git,那问题就在这儿,这个地址里的admin和123456就是账号密码,它们被硬编码进了仓库配置里,解决办法是重新设置远程地址:
git remote set-url origin http://192.168.1.100/group/project.git
替换成不含用户信息的干净地址,以后每次推送拉取,git都会弹出账号密码输入框,或者读取你重新配置的凭据管理器。
SSH密钥方式的用户身份重置
如果你用的是SSH协议连接git服务器,那就没有“删除用户名密码”这一说,因为SSH走的是公钥认证,但你可能需要找回或者重置服务器上绑定的用户名,操作路径有所不同。
查看当前SSH密钥对应的用户名
Git服务器上识别你的身份,靠的是~/.ssh/id_rsa.pub里的公钥,在服务器端,管理员能看到这个公钥关联的账号名,想确认自己当前用哪个身份在操作,执行:
ssh -T git@你的服务器地址
gitlab会回显Welcome to GitLab, @用户名,gitea回显Hello 用户名,回显里的用户名,就是你当前推送代码时展示的身份。
更换SSH密钥并删除旧身份
如果想彻底换掉身份,先在本地生成新的密钥对:
ssh-keygen -t rsa -b 4096 -C "你的新邮箱"
然后把新生成的id_rsa.pub内容,添加到git服务器个人设置里的“SSH Keys”区域,如果服务器上还残留着旧公钥,登录git服务器后台,在“用户设置”或“管理后台”的SSH密钥列表里手动删除旧公钥,删除后,旧公钥就无法再拉取或推送代码了。
忘记密码后的服务器端重置
上述操作都是客户端侧的行为,真正要修改服务器上存储的用户名和密码,得登录git服务器管理后台。
GitLab服务器重置用户密码
以最常见的GitLab为例,管理员登录后,进入“Admin Area – Users”,找到目标用户,点击“Edit”,在“Password”一栏输入新密码并保存,普通用户也可以在自己的“Settings – Password”里修改,如果没有管理员权限,让项目Owner或服务器管理员帮你执行密码重置。
Gitea服务器的账号管理
Gitea的路径更简洁:进入“管理面板 – 用户管理”,找到目标账号,点击编辑,密码字段有“更改密码”选项,输入新值并确认,Gitea还有一个特性,管理员可以直接修改用户名,在编辑页面改完保存,旧用户名即刻失效。

服务器上彻底删除一个用户
删除(而非重置)用户账号要谨慎,GitLab里,管理员删除用户时会询问该用户名下的项目如何处理是转移到其他用户,还是直接删除,推荐选择转移,避免历史代码丢失,Gitea同理,删掉的用户会变成“已删除用户”状态,相关提交记录虽然保留,但显示的昵称会变成“Ghost”之类的占位符,据git服务器运维经验,相当一部分团队误删账号后,都遇到过历史提交无法追溯贡献者的问题,实际操作前一定先备份或转移资源。
实操中常见的四种场景与应对
不同场景下,“删除用户名和密码”这个需求背后的真实意图差异很大,对照下面的情况,直接找对应解法。
| 真实需求 | 具体表现 | 解决路径 |
|---|---|---|
| 切换工作账号 | 前同事的账号残留在开发机上 | 清理系统凭据管理器 + 重新登录 |
| 修改服务器密码 | 远程密码变了,本地一直连不上 | 更新远程URL或重新输入密码 |
| 更换SSH密钥 | 旧电脑遗失,害怕代码被拉取 | 服务器管理后台删除旧公钥 |
| 清理脚本中的明文密码 | 自动化脚本里硬编码了账号密码 | 改用环境变量或SSH密钥方式 |
你的密码到底存在哪儿一张图看清存储机制
git本身并不保存用户名和密码,它把这份“记忆”的职责外包给了操作系统,Windows用credential.manager,macOS用osxkeychain,Linux的libsecret或纯文本文件各自负责,理解这一点,你就能明白为什么删了git配置,密码还可能继续弹出来因为密码根本不归git管。
行业共识认为,HTTPS方式的用户名密码通常保存在系统层的凭据服务中,而不是.git/config文件内,所以删除时,优先排查系统的凭据存储工具,再去翻仓库配置文件。
git 修改用户名后如何清理旧凭据
更换公司或人员流动后,电脑里残留的旧用户名会让新同事的提交记录全部算到前人头上,操作流程:
- 打开系统的凭据管理器,找到旧账号的条目并删除
- 执行
git config --global -l检查是否有残留的用户名配置 - 若配置里存在
user.name和user.email的旧值,执行git config --global --unset user.name和git config --global --unset user.email - 重新推送代码时输入新账号

还有个容易遗漏的地方:仓库级别的.git/config文件可能覆盖全局配置,导致你改了全局设置,提交时还是显示旧人,分别检查全级别配置的正确姿势:
git config --global --list git config --local --list
清除账号后的潜在影响
删除用户名和密码不是因为难,而是操作完后可能引入的问题,常见副作用有两个:
历史提交的信息错乱,git提交记录里的作者名字,是在commit时烙进对象库里的,删除服务器账号不会改写历史提交的显示名,但如果你在本地清了全局user.name配置,后续新提交会以“未知用户”或系统主机名作为作者,仓库历史瞬间变乱。
重复认证带来的效率损耗,频繁弹框输入账号密码,一定概率会打断部署流水线的自动化任务,CI系统如果在构建时也没配置凭据,删除缓存后会出现认证超时,这时建议改用SSH密钥或部署令牌,一次配置长期免密。
git 清除账号凭据后如何重新输入
清除只是第一步,重连才是收尾,重新认证的几种方式:
- HTTPS方式重新推送时,在弹出的输入框里,填新用户名和密码时勾选“记住凭据”
- 用
git credential approve命令手动写入新凭据 - 编辑
~/.git-credentials,以http://用户名:新密码@仓库地址格式手动追加一行
明文方式写入密码文件存在安全风险,设置文件权限为chmod 600限制读写是必要停机,也可以选择名为“credential helper”的配置项,用操作系统自带的加密存储区来保存新凭据。
Q&A:git 服务器删除用户名和密码的常见疑问
删除服务器上的用户名和密码后,会影响其他人拉取代码吗?
不影响,你删除的是服务器侧某个账号的认证信息,其他用户使用各自的账号或SSH密钥访问仓库,但注意:如果删除的是管理员账号,仓库权限分配会发生变化,项目成员可能需要重新配置权限。
修改了服务器密码,但git推送还是提示认证失败,怎么排查?
先确认本地缓存里是否还存着旧密码,按前文方法清空系统凭据,再次推送时手动输入新密码,如果依然失败,检查远程URL是否正确,确保URL中没有写死旧的账号信息,以及服务器端新密码确实已生效,以GitLab为例,密码修改后,已有的SSH密钥不受影响,但HTTPS方式使用的个人访问令牌需要重新生成,因为原来的令牌已随密码重置失效。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/687468.html

