执行git rebase -i后丢失代码,如何恢复变更?
撤销Git强制推送后的rebase变更,恢复丢失代码
先通过Git的引用日志(reflog)定位rebase操作前的提交记录,执行命令:
git reflog
输出列表里会显示所有分支的操作历史,找到你执行rebase前的最后一个有效提交哈希(比如带有commit: 上周完成的代码提交这类描述的条目,或者标记rebase -i (start)的前一条记录)。将本地分支硬重置到该历史提交,完全恢复之前的代码状态:
git reset --hard <找到的提交哈希值>重新强制推送到Bitbucket远程分支,覆盖之前错误的推送结果:
git push --force origin <你的分支名称>
注意:如果该分支有其他协作者在使用,强制推送会覆盖他们的本地修改,执行前务必确认没有其他人基于错误版本工作。额外保险:执行重置前可以先创建备份分支,避免误操作带来二次损失:
git branch backup-rebase-error
内容的提问来源于stack exchange,提问作者user19715801
相关产品推荐
相关产品推荐

