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

如何回到Git历史提交版本并保留未提交文件的修改?

保留未提交修改并回退到历史提交的Git操作方法

方法一:暂存修改后切换提交(最稳妥,适用于所有场景)

当不确定工作区改动和目标提交是否存在冲突时,优先使用该方法:

  1. 暂存当前未提交的所有修改
    把工作区的改动临时保存到Git的暂存栈,避免切换提交时被覆盖:

    git stash push -m "暂存工作区未提交修改"
    

    (-m参数用于给暂存记录添加备注,方便后续识别;无需备注时直接执行git stash即可)

  2. 切换到目标历史提交
    通过git log --oneline查看目标提交的哈希值(通常取前7位即可),执行切换命令:

    git checkout <目标提交哈希>
    

    例如目标提交哈希为a1b2c3,则执行git checkout a1b2c3

  3. 恢复暂存的修改
    将之前暂存的改动恢复到当前工作区:

    git stash pop
    

    (pop会在恢复后删除暂存栈中的对应记录;若想保留暂存记录,改用git stash apply)

方法二:直接切换提交并保留工作区改动(适用于无冲突场景)

若能确定工作区的改动和目标提交的版本无冲突(比如仅修改了某个文件,且该文件在目标提交后未被其他提交改动),可直接执行切换命令,Git会自动保留未提交的修改:

git checkout <目标提交哈希>

执行后Git会检查改动是否会被覆盖,若无冲突则直接切换到目标提交;若存在冲突,Git会拒绝执行并提示处理改动,此时需改用方法一。

额外说明

  • 若想回退到目标提交后基于该提交重新工作,可使用git reset --soft <目标提交哈希>,该命令会将HEAD移动到目标提交,同时保留暂存区和工作区的改动。注意:此命令会修改当前分支的历史,若分支已推送到远程仓库需谨慎操作。
  • 查看历史提交详情用git log,查看简洁版提交记录用git log --oneline

内容的提问来源于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 08:05:00