You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket旧提交映射问题:2018年前提交无法关联个人账号

解决Bitbucket提交提示"author not mapped to bitbucket user"的问题

我来帮你搞定这个问题——这个报错本质是你2018年前提交代码时用的作者邮箱,没有和当前的Bitbucket账号关联起来,平台没法把旧提交和你的账号对应上。这里有两种实用的解决办法,你可以根据需求选择:

方法一:添加旧邮箱到Bitbucket账号(简单无风险)

这是最省心的方案,不用修改任何提交历史,直接让Bitbucket识别旧邮箱对应的是你:

  • 登录你的Bitbucket账号,进入右上角个人头像下拉菜单里的「Personal settings」
  • 在左侧导航栏找到「Email addresses」选项
  • 点击「Add email address」,输入你2018年提交代码时使用的旧邮箱
  • 去这个旧邮箱查收Bitbucket的验证邮件,点击链接完成验证
  • 验证完成后刷新仓库页面,那些旧提交就会自动映射到你的Bitbucket账号了

方法二:修改提交历史中的作者信息(彻底修正记录)

如果你希望彻底更新旧提交里的作者信息,而不是仅仅关联邮箱,可以用Git修改历史后强制推送:

  1. 先把仓库克隆到本地(已有本地仓库可跳过):git clone <你的仓库远程URL>
  2. 进入仓库目录:cd <仓库名称>
  3. 运行下面的脚本(记得替换成你的实际信息):
git filter-branch --env-filter '
OLD_EMAIL="你2018年用的旧邮箱"
CORRECT_NAME="你的Bitbucket用户名"
CORRECT_EMAIL="当前Bitbucket账号绑定的邮箱"
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
  1. 脚本执行完毕后,推送修改后的历史到远程仓库:git push --force --all
  2. 如果仓库有标签,别忘了同步标签:git push --force --tags

⚠️ 注意:强制推送会覆盖远程仓库的历史记录,如果有其他协作者在使用这个仓库,一定要提前通知他们,让他们重新拉取仓库内容,避免代码冲突。

内容的提问来源于stack exchange,提问作者A.khaled

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:18:11