要解决 “No Bitbucket account was found matching the commit author email address” 这一错误,你需要确保用于提交的电子邮件地址与你的Bitbucket账户关联的经过验证的电子邮件地址一致。以下是解决此问题的步骤:
检查你的Git配置
首先,验证你用于提交的电子邮件地址是否与Bitbucket账户上的电子邮件地址匹配。在终端中运行以下命令来检查你的Git配置:
git config --list
在输出中查找 user.email
。如果它与Bitbucket账户的电子邮件不匹配,请更新它:
git config --global user.email "你的_bitbucket_邮箱@example.com"
如果你只希望为当前仓库设置,请省略 --global
:
git config user.email "你的_bitbucket_邮箱@example.com"
在Bitbucket上验证邮箱
确保你用于提交的电子邮件在Bitbucket设置中已经被验证。前往你的Bitbucket个人资料,导航到“设置”>“电子邮件地址”,并添加或验证该邮箱。
检查多个账户或邮箱别名
如果你有多个账户或者同一个邮箱与多个用户目录关联,这可能会造成混淆。检查你的邮箱地址是否与多个Bitbucket账户相关联:
如果你有管理权限,可以在Bitbucket实例数据库上运行SQL查询:
SELECT * from cwd_user WHERE lower_email_address LIKE '%你的邮箱地址%';
如果有多个结果,你需要将所有但一个账户的邮箱地址更改为不同的来解决冲突。
修改提交
对于已经出现邮箱不匹配的现有提交,你可能需要重写提交历史:
修改最近的提交
git commit --amend --author="你的名字 <你的_bitbucket_邮箱@example.com>"
对于所有提交
使用 git filter-branch
或 git filter-repo
,但要谨慎,这会重写历史(只有在你未共享仓库时才这样做):
git filter-branch --env-filter '
CORRECT_NAME="你的名字"
CORRECT_EMAIL="你的_bitbucket_邮箱@example.com"
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
' --tag-name-filter cat -- --branches --tags
推送更改
在修改或更新提交后,强制推送到仓库(谨慎使用):
git push --force origin <分支名称>
在Bitbucket UI中检查提交作者
完成这些步骤后,检查Bitbucket中的提交历史,确保你的提交现在显示的是正确的用户名。
请记住,如果你在团队中工作,重写提交历史可能会给其他人造成问题,所以要沟通这些变更,或者在可能的情况下,只对新的提交应用这些修复。