You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何撤销本地所有提交,恢复至远程master分支的最新版本?

解决方法:彻底恢复到远程master分支的最新版本

别担心,你之前用git checkout 84acc42 .的操作确实会留下隐患——它只是替换了工作区的文件,但本地分支的提交历史还是停留在合并后的状态,后续推送时大概率会因为历史冲突被拒绝。下面给你两种更稳妥的方案,帮你彻底回到远程master的干净状态:

方案一:使用git reset --hard(推荐)

这是最直接的方式,会把本地分支的HEAD指针、索引区、工作区完全重置为远程master的最新状态,彻底抹掉本地提交和合并的痕迹:

  • 第一步:如果本地有未提交的修改,先暂存起来(避免丢失):
    git stash
    
    (之后需要恢复的话,执行git stash pop即可)
  • 第二步:拉取远程master的最新提交信息(确保本地拿到最新的远程状态):
    git fetch origin
    
  • 第三步:重置本地分支到远程master的最新版本:
    git reset --hard origin/master
    
    执行完这条命令后,你的本地仓库就和远程master完全一致了,之前的本地提交和合并操作都会被清除,后续修改推送也不会有问题。

方案二:如果已经执行过git checkout <commit> .

如果你已经用了checkout命令替换了工作区文件,也不用慌,直接执行方案一的步骤即可——git reset --hard会覆盖当前的工作区状态,帮你回到正确的远程版本。

注意:git reset --hard会丢弃所有未提交的本地修改,所以一定要确认你没有需要保留的未提交内容,或者提前用git stash暂存!

内容的提问来源于stack exchange,提问作者Martin AJ

火山引擎 最新活动