Git push时警告邮箱暴露,推送失败

旧的git本地仓库上传到新建的gitee仓库时,出现警告邮箱暴露,push失败

vbnet 复制代码
Push will publish a hidden email, make email public or abandon related commits
remote: error: hook declined to update refs/heads/main

解决方案: 查看当前提交记录中的邮箱,是否和gitee中默认邮箱设置中给的提交邮箱一致

bash 复制代码
# 列出所有唯一邮箱及其出现次数
git log --all --format='%ae' | sort | uniq -c | sort -rn

如果不一致,可修改记录中的邮箱。先全局设置提交邮箱为gitee默认邮箱:

arduino 复制代码
git config --global user.email "xxx@user.noreply.gitee.com"

查看当前生效的邮箱设置:

arduino 复制代码
git config user.email

再更新最新的提交但push失败记录中的邮箱:

css 复制代码
# 修正最近一次提交的作者信息
git commit --amend --reset-author --no-edit

如果提交记录中还有之前的git日志,也要更新邮箱为可公开的邮箱:

sql 复制代码
# 使用 git filter-repo(推荐,比 filter-branch 更安全高效)
# 先安装:pip3 install git-filter-repo 或 brew install git-filter-repo

git filter-repo --email-callback '
    if email == b"要替换的邮箱":
        return b"gitee默认可公开的提交邮箱"
    return email
'

再次查看提交记录中的邮箱:

perl 复制代码
# 最近一次提交的作者邮箱
git log -1 --format="%ae"

# 最近 N 次提交的邮箱(检查历史是否一致)
git log -n 5 --format="%h %ae %s"

如果正确无误,可以再次git push;如果还是错的,可以考虑直接git clone线上数据库,然后把项目文件拷贝进来,记得先全局设置提交邮箱为gitee默认邮箱,然后再git add、commit、push

相关推荐
lsc_blog1 天前
年底还在招的岗位,先确认缺口和到岗要求
git·缓存·ci/cd·职场和发展·github
全栈陈序员1 天前
【Git】从入门到精通(十一)—— git reset 三种模式详解
git·elasticsearch
全栈陈序员1 天前
【Git】从入门到精通(十)—— 撤销与恢复:git checkout与git restore
运维·网络·数据库·git
全栈陈序员2 天前
【Git】从入门到精通(五)—— git add:将文件加入暂存区
大数据·git·elasticsearch
全栈陈序员2 天前
【Git】从入门到精通(七)—— git status:查看仓库状态
大数据·git·elasticsearch
莫晓燚2 天前
Ansible 13 个常用模块---企业实战
git·github
无言听风雨丶2 天前
Kubernetes GitOps 持续交付实战:用 Argo CD 让 Git 成为集群事实源
git·elasticsearch·kubernetes
全栈陈序员2 天前
【Git】从入门到精通(六)—— git commit:提交到版本库
大数据·git·elasticsearch
全栈陈序员3 天前
【Git】从入门到精通(一)—— Git简介:什么是版本控制系统
大数据·git·elasticsearch
大猫会长3 天前
git笔记
git