Bitbucket旧提交映射问题:2018年前提交无法关联个人账号
我来帮你搞定这个问题——这个报错本质是你2018年前提交代码时用的作者邮箱,没有和当前的Bitbucket账号关联起来,平台没法把旧提交和你的账号对应上。这里有两种实用的解决办法,你可以根据需求选择:
方法一:添加旧邮箱到Bitbucket账号(简单无风险)
这是最省心的方案,不用修改任何提交历史,直接让Bitbucket识别旧邮箱对应的是你:
- 登录你的Bitbucket账号,进入右上角个人头像下拉菜单里的「Personal settings」
- 在左侧导航栏找到「Email addresses」选项
- 点击「Add email address」,输入你2018年提交代码时使用的旧邮箱
- 去这个旧邮箱查收Bitbucket的验证邮件,点击链接完成验证
- 验证完成后刷新仓库页面,那些旧提交就会自动映射到你的Bitbucket账号了
方法二:修改提交历史中的作者信息(彻底修正记录)
如果你希望彻底更新旧提交里的作者信息,而不是仅仅关联邮箱,可以用Git修改历史后强制推送:
- 先把仓库克隆到本地(已有本地仓库可跳过):
git clone <你的仓库远程URL> - 进入仓库目录:
cd <仓库名称> - 运行下面的脚本(记得替换成你的实际信息):
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
- 脚本执行完毕后,推送修改后的历史到远程仓库:
git push --force --all - 如果仓库有标签,别忘了同步标签:
git push --force --tags
⚠️ 注意:强制推送会覆盖远程仓库的历史记录,如果有其他协作者在使用这个仓库,一定要提前通知他们,让他们重新拉取仓库内容,避免代码冲突。
内容的提问来源于stack exchange,提问作者A.khaled
相关产品推荐
相关产品推荐

