如何彻底删除Windows端SourceTree推送至BitBucket的提交记录
1. BitBucket端彻底删除提交记录的方法
你之前执行的git push --force仅修改了远程分支的指针指向,没有被任何引用关联的悬空提交不会被BitBucket自动立即清理,按以下操作可彻底删除:
- 首先确认所有远程引用(包括其他分支、标签、MR/PR源分支)都没有指向那两条待删除提交的指针,如果有对应引用需要一并调整指向或删除,否则GC时不会清理这些被引用的提交。
- 如果你有仓库管理员权限,可直接在BitBucket后台手动触发垃圾回收:进入对应仓库的设置→仓库高级管理,找到「运行垃圾回收」的选项点击执行即可。不同版本BitBucket的菜单位置可能略有差异,可在仓库设置的维护类选项中查找对应功能。
- 操作完成后需要同步通知所有协作者执行
git fetch origin && git reset --hard origin/develop(替换为你对应的分支名),避免其他协作者本地留存的坏提交被重新推送到远程仓库。
2. SourceTree端清除冗余提交记录的方法
SourceTree显示的冗余提交是你本地Git仓库缓存的悬空提交对象,不会随远程记录删除自动消失,按以下步骤清理:
- 先在Git Bash执行本地深度GC命令:
git reflog expire --expire=now --all git gc --prune=now --aggressive
- 执行完成后重启SourceTree,冗余的提交记录就会被清除,无法再被检出。
内容的提问来源于stack exchange,提问作者Natulux
相关产品推荐
相关产品推荐

