执行hard reset后如何将本地开发分支推送到远程仓库?
解决方案
你需要通过强制推送覆盖远程分支的提交历史即可,操作前请确认当前RHI-89分支仅你一人在使用,避免影响其他协作者的本地分支。
方法1:直接强制推送
执行以下命令:
git push -f origin RHI-89
如果推送仍然被拒绝,说明你的Bitbucket仓库对RHI-89分支开启了分支保护规则,禁止强制推送,你需要:
- 进入仓库的「Settings > Repository settings > Branch permissions」页面
- 找到针对
RHI-89的保护规则,临时关闭「Prevent force push」限制,或给你的账号添加强制推送权限 - 推送完成后再恢复原有规则即可
方法2:删除远程分支后重新推送
如果你不想修改分支保护规则,也可以先删除远程的RHI-89分支,再把本地正确的分支推上去,效果和强制推送一致:
# 删除远程分支 git push origin --delete RHI-89 # 推送本地分支并绑定远程跟踪关系 git push origin -u RHI-89
注意事项
- 禁止对master、develop等多人共用的公共分支执行上述操作,否则会丢失其他协作者的提交,导致所有人本地分支与远程不一致
- 操作前请再次通过
git log核对本地RHI-89的提交历史是否符合预期,避免误操作丢失提交
内容的提问来源于stack exchange,提问作者Sheldon
相关产品推荐
相关产品推荐

