You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何回退到历史Git提交且不丢失后续提交?

临时查看旧提交项目结构且保留后续提交的方法

别用git reset --hard(这个操作会移动当前分支指针,导致后续提交从分支中“消失”,虽然能通过reflog找回但完全没必要),推荐两种更安全的方式:

方法一:切换到旧提交(分离头指针状态)

  • 先记好当前在用的分支名(比如main或master),执行命令:
    git checkout <commit-ID>
    
    此时项目会切换到该提交对应的状态,你可以随意查看项目结构。
  • 查看完要回到最新提交,直接切回原分支就行:
    git checkout main  # 替换成你的实际分支名
    # 或者用Git 2.23+支持的git switch
    git switch main
    
  • 注意:分离头指针状态下如果改了代码并提交,会生成游离的提交;要是想保留这些修改,执行git checkout -b 新分支名就能把修改存到新分支里。

方法二:创建独立工作目录(同时保留新旧版本)

如果需要同时查看旧版本和最新版本的项目,不用来回切换,用git worktree更方便:

  • 执行命令在外部生成一个对应旧提交的独立工作目录:
    git worktree add ../old-project-dir <commit-ID>
    
    其中../old-project-dir是你指定的新目录路径,执行后该目录下就是旧提交的项目内容,完全不影响原项目目录的状态。
  • 用完后清理:先删掉创建的目录,再执行命令清理Git的工作树记录:
    rm -rf ../old-project-dir
    git worktree prune
    

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:14:52