git 批量更改提交者邮箱规避 GH007 private email address 问题
问题描述
有时我们在推送提交时,会看到如下报错
(图片来源网络,侵删)
remote: error: GH007: Your push would publish a private email address. remote: You can make your email public or disable this protection by visiting: remote: http://github.com/settings/emails
这是因为我们将提交中的邮箱设为了私密。因此,需要快速将所有邮箱更改为GitHub提供的no-reply版本。
解决方案
更改以下代码中的OLD_EMAIL、CORRECT_NAME和CORRECT_EMAIL,执行即可。
git filter-branch --env-filter ' OLD_EMAIL="欲匹配的提交者邮箱@123.com" CORRECT_NAME="新的提交者名" CORRECT_EMAIL="新的提交者邮箱@123.com" 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
结果类似下面的输出
WARNING: git-filter-branch has a glut of gotchas generating mangled history rewrites. Hit Ctrl-C before proceeding to abort, then use an alternative filtering tool such as 'git filter-repo' (https://github.com/newren/git-filter-repo/) instead. See the filter-branch manual page for more details; to squelch this warning, set FILTER_BRANCH_SQUELCH_WARNING=1. Proceeding with filter-branch... Rewrite xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (51/71) (1 seconds passed, remaining 0 predicted)
接下来,还可选择使用force push强行同步到远端仓库。
git push --force
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。