git服务器删除用户名和密码的核心操作是清除本机已保存的认证凭据,具体命令为git config --global --unset credential.helper,或使用git credential reject逐条清除,不同系统的清除路径各有差异。
为什么要删除git服务器保存的用户名和密码
大多数人在日常开发中遇到过这样的场景:换了新账号推送代码时,终端一直报Permission denied,报错信息里隐约带着旧账号的影子,原因很简单,git把旧账号密码存进了本机某个角落,每次连接服务器都自动提交旧凭据,新账号根本没机会上场。
git的凭据存储机制是分层设计的,系统级、全局级、仓库级三个层面都可能藏着认证信息,删除凭据之前,先得搞清楚git到底把密码藏在了哪里,查看当前生效的凭据配置,执行:
git config --list --show-origin | grep credential
这条命令会列出所有层级中与credential相关的配置项及其来源文件,输出结果一般有三种可能:credential.helper=manager表示用的是系统凭据管理器,credential.helper=store表示明文存储在文件里,credential.helper=cache表示临时缓存在内存中,搞清楚存储方式,才能对症下药。
全局配置中删除git用户名和密码
直接用git命令清空全局凭据
如果只是想让git停止使用保存的账号密码,最简单的方式是从git配置里移除凭据helper,打开终端,执行:
git config --global --unset credential.helper
这条命令删除了全局配置中所有credential.helper相关的设定,执行完以后,git回到最原始的交互模式,每次推送或拉取时都会在终端提示输入用户名和密码。
如果全局配置里同时存在多个helper条目,--unset只会删除第一条匹配的配置,需要重复执行直到没有输出为止,可以用git config --global --unset-all credential.helper一次性清空全部条目,操作更彻底。
删除指定仓库级别的凭据配置
某些项目在.git/config中单独设置了认证方式,这种情况下全局配置的修改对当前仓库不生效,进入仓库根目录,执行:
git config --unset credential.helper
这个命令只影响当前仓库,其他项目的认证配置不受干扰,适合git服务器换账号时单独处理某个项目的情况。
编辑配置文件手动删除
不想敲命令的话,直接打开配置文件手动删除也行,全局配置文件位于用户主目录下的.gitconfig,仓库级配置在.git/config

,用编辑器打开文件,找到[credential]段落,删掉或注释掉helper那一行,保存退出即可。
不同操作系统下git服务器删除已保存密码的具体操作
Windows系统清除git凭据
Windows系统上git默认使用的是Git Credential Manager,凭据保存在Windows凭据管理器中,删除方式有两种路径。
通过控制面板清理
打开控制面板,进入”用户账户”,点击”管理Windows凭据”(部分系统显示为”凭据管理器”),在”Windows凭据”区域找到以git:https://开头的条目,展开后点击”删除”,清理完毕后,下次git操作会重新弹出认证窗口。
通过命令行清理
打开命令提示符或PowerShell,执行:
cmdkey /list | findstr git cmdkey /delete:target:<查到的目标名称>
第一条命令列出所有与git相关的凭据条目,第二条命令根据查到的目标名称删除指定凭据。cmdkey是Windows自带的凭据管理工具,不需要额外安装。
macOS系统清除git凭据
macOS上git凭据通常存在钥匙串访问里,清除方式同样有两种。
打开”钥匙串访问”应用(Spotlight搜索”钥匙串”即可),在搜索框输入git或服务器域名,找到对应的互联网密码条目,右键选择”删除”。
命令行方式使用git credential-osxkeychain erase,通过标准输入传入服务器信息来匹配并删除:
printf "protocol=https\nhost=github.com\n\n" | git credential-osxkeychain erase
这里的host改成实际git服务器的域名,执行后钥匙串中对应的凭据会被清除,没有输出信息属于正常现象。
Linux系统清除git凭据
Linux下git常用的是store和cache两种helper。store模式将明文凭据存放在~/.git-credentials文件中,每行一条记录,格式为http://用户名:密码@服务器地址,直接用文本编辑器打开这个文件,删除对应的行,或者干脆把整个文件删掉:
rm ~/.git-credentials
cache模式把凭据暂存在内存中,默认超时时间是900秒,清除方式执行:
git credential-cache exit
这个命令会立即终止缓存守护进程,内存中保存的凭据随之消失,如果之前执行过git config --global credential.helper store,这几条命令只清理了凭据文件,配置项仍然存在,后续操作还会继续往文件里写入新凭据,清完存储后建议顺手执行

git config --global --unset credential.helper,把存储开关一并关掉。
特殊场景下的git服务器认证信息清理
git服务器换账号后如何清除旧凭据
换账号推送代码被拒,这在团队协作中极其常见,旧的git服务器账号已被回收,本机凭据管理器却还在自动提交失效的凭据,此时除了要删除已保存的旧凭据,还需要让git记住新账号。
推荐按以下顺序操作:
- 按上文方法清除对应系统的凭据存储
- 执行
git config --global --unset credential.helper移除自动认证 - 执行
git push触发认证提示 - 输入新账号的用户名和密码
- 认证通过后重新开启
git config --global credential.helper store(或manager)
如果需要确认git服务器上的账号是否已经删除,可以到服务器端查看,git服务器的账号管理权限在服务器管理员手里,普通开发者只能清理本机凭据,无法直接操作服务器端账号数据,常见git服务器管理路径包括:GitLab的Admin Area → Users,Gitee的企业成员管理页面,Github的Repository → Settings → Collaborators。
用git credential reject精准删除指定凭据
git config --unset credential.helper属于全局清理,会关掉整个自动认证机制,如果只是想删除某一个服务器的凭据,保留其他服务器的自动认证,需要用更精细的方式:
git credential reject protocol=https host=git.example.com
输入完按两次回车提交指令。git credential reject会从凭据存储中移除匹配protocol和host的条目,不影响其他服务器的凭据,这里的host可以是域名,也可以带上端口号写成git.example.com:8443,想要确认是否删除成功,用git credential fill探测:
git credential fill protocol=https host=git.example.com
如果输出结果中包含了username=和password=,说明凭据还在;如果只输出了username=没有密码,或者直接返回找不到凭据的信息,说明已经删除干净。
git push时反复提示输入密码怎么处理
有一种情况比较特殊:明明已经删除了所有凭据,每次git push还是不断弹出用户名密码输入框,多数情况下是因为远程仓库地址里没有携带用户名,而服务器又开启了严格的权限校验,检查当前仓库的远程地址:
git remote -v
如果输出的是https://github.com/用户名/仓库名.git这种不带用户名的格式,推送时git会尝试从凭据管理器获取账号信息,获取不到就会弹窗询问,把远程地址改成携带用户名的格式可以跳过这个环节:

git remote set-url origin https://用户名@github.com/用户名/仓库名.git
业内专家指出,这种问题在多人协作的git服务器环境中出现频率相当高,大部分情况都是凭据缓存与服务器端账号状态不一致导致的。
清除git服务器凭据后的验证方法
清理完成后,需要进行一次完整的认证链路测试,推荐用以下顺序逐一排查:
- 确认配置已清除:执行
git config --show-origin --get-all credential.helper,空输出表示已删除干净 - 检查本地存储:Windows系统的
cmdkey /list、macOS的钥匙串访问、Linux的ls -la ~/.git-credentials,确保对应存储中无残留 - 实际推送验证:修改一个文件,执行
git push,观察终端是否弹出认证提示
如果推送时仍然没有弹出认证框,说明有其他层级的凭据还在生效,用git config --list --show-origin逐层排查配置来源,或者干脆检查环境变量中是否有GIT_ASKPASS之类的特殊设置。
常见问题解答
git服务器上删除用户会影响已克隆的仓库吗
不会,删除git服务器上的用户账号,影响的是该账号后续的认证和权限,已经克隆到本地的仓库是完整副本,可以正常查看代码、切换分支、查看提交历史,只有执行涉及远程交互的操作(如git push)时,因为账号已失效才会报权限错误,团队中其他成员的本地仓库不受影响,管理员重新分配新账号后,删除旧账号的操作对其他人的开发流程没有直接冲击。
清除git凭据后会不会影响其他项目
清除凭据的行为是全局性的,影响的是所有使用同一认证信息的项目,如果本机所有项目都使用同一个git服务器账号,删除凭据后所有项目的自动认证都会失效,需要重新输入账号密码,不同的项目如果使用了不同服务器的认证信息,只清除特定服务器的凭据就不会影响其他项目,使用git credential reject配合指定host的方式可以做到精准删除,不误伤其他服务器的认证信息。
删除git凭据和删除git账号是一回事吗
不是,删除git凭据是清除本机保存的认证信息,git服务器上的账号仍然存在,下次推送时重新输入正确的账号密码即可正常操作,删除git账号是服务器端的操作,由管理员在git服务器管理界面中执行,账号删除后对应的访问权限随之撤销,即使本机保存了正确的凭据也无法通过认证,日常开发中遇到的”换账号”问题,通常只需要在本地清除旧凭据,不需要也不应该去服务器端删除账号。
