Git推送提示Author Validation failed身份验证失败如何解决
解决方案
- 首先确认仓库级配置是否正确
git配置优先级为 本地仓库配置 > 全局用户配置 > 系统配置,你之前执行的git config --list会展示所有层级的配置叠加结果,建议单独检查仓库级配置是否覆盖了正确的全局配置:
执行git config --local --list查看当前仓库的专属配置,如果其中的user.name、user.email与预期不符,执行以下命令修改:git config --local user.name "你的正确用户名" git config --local user.email "你的正确绑定邮箱" - 批量修复历史提交的作者信息
git commit --amend --reset-author仅能修复最近1次提交的作者信息,如果更早的提交存在作者信息错误,单条amend命令不会生效。注意:修改git提交历史属于高风险操作,操作前先执行
git branch backup_current备份当前分支状态,避免数据丢失。
如果你只需要修改最近N次提交的作者(将N替换为实际需要修改的提交数量),执行:git rebase -i HEAD~N -x "git commit --amend --reset-author --no-edit"
如果你需要修改当前分支所有提交的作者信息,执行以下脚本(替换脚本内的旧错误邮箱、正确用户名、正确邮箱为实际值):git filter-branch --env-filter ' OLD_EMAIL="你的旧错误邮箱" CORRECT_NAME="你的正确用户名" CORRECT_EMAIL="你的正确绑定邮箱" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags - 确认远程仓库权限匹配
大部分代码托管平台要求提交使用的邮箱必须是账号绑定且已完成验证的邮箱,未验证的邮箱即使本地配置正确也会被远程拦截。你可以登录对应平台的账户设置页面,确认你使用的邮箱已经完成验证,且对应账号拥有目标仓库的推送权限。 - 检查本地凭证存储
如果推送时提示身份校验失败,可能是本地存储的git凭证过期或错误。Windows系统可进入凭据管理器删除对应git平台的旧凭证,Mac系统可进入钥匙串访问删除对应git平台的旧凭证,重新推送时输入正确的账号密码/个人访问token即可。 - 强制推送修改后的分支
如果你修改了提交历史,普通推送会被远程拒绝,确认当前个人分支没有其他人共同开发的前提下,执行git push origin 你的分支名 --force-with-lease强制推送即可,该命令比--force更安全,不会意外覆盖其他人的提交。
内容的提问来源于stack exchange,提问作者Leo34
相关产品推荐
相关产品推荐

