Git误将提交推至master,如何恢复到指定仓库历史状态?
恢复Git仓库到指定状态步骤
前提准备
先通过git log找到「Added basic information.」这个提交的完整SHA值,记为<target_sha>。
步骤1:切换到本地master分支
git checkout master
步骤2:重置本地master到目标提交
这个操作会直接将本地master分支的指针移到目标提交,注意:会丢弃本地master分支上未提交的修改,如果有重要未提交内容,请先备份:
git reset --hard <target_sha>
步骤3:强制推送覆盖远程master分支
因为远程master的历史已经被误提交的commit3、commit4污染,需要强制推送本地重置后的master来覆盖远程:
git push -f origin master
额外说明
- 你当前的
branch_name分支已经指向commit4,正好符合「commit3、commit4属于另一个分支」的预期,不需要额外调整这个分支。 - 之前你执行的
git push -f origin <sha_of_previous_commit>:master用错了目标SHA(用了commit2的SHA),所以才会停在commit2,没有到达你想要的状态。
内容的提问来源于stack exchange,提问作者klimic_8
相关产品推荐
相关产品推荐

