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

如何撤销Squash Commits并仅保留指定提交的代码变更

问题描述

错误执行了Squash Commits操作,希望撤销所有合并提交,仅保留提交699546a(对应日志:699546a HEAD@{5}: rebase (pick): Azure JDBC Changes)的变更,当前git reflog信息如下:

868efc8 (HEAD -> jdbc_exporter, origin/jdbc_exporter) HEAD@{0}: revert: Revert "Azure JDBC Changes"
    699546a HEAD@{1}: reset: moving to HEAD
    699546a HEAD@{2}: reset: moving to HEAD@{1}
    699546a HEAD@{3}: reset: moving to 699546a
    699546a HEAD@{4}: rebase (finish): returning to refs/heads/jdbc_exporter
    699546a HEAD@{5}: rebase (pick): Azure JDBC Changes
    4a63871 HEAD@{6}: rebase (squash): parent 033f1e42b85af682f55a79f4f5bef401af0a1125
    eab2f79 HEAD@{7}: rebase (squash): # This is a combination of 21 commits.
    002f259 HEAD@{8}: rebase (squash): # This is a combination of 20 commits.
    a3482a5 HEAD@{9}: rebase (squash): # This is a combination of 19 commits.
    4d46620 HEAD@{10}: rebase (squash): # This is a combination of 18 commits.
    855e0b9 HEAD@{11}: rebase (squash): # This is a combination of 17 commits.
    6b81fa9 HEAD@{12}: rebase (squash): # This is a combination of 16 commits.
    f40ca89 HEAD@{13}: rebase (squash): # This is a combination of 15 commits.
    0008502 HEAD@{14}: rebase (squash): # This is a combination of 14 commits.
    c3acb29 HEAD@{15}: rebase (squash): # This is a combination of 13 commits.
    3be9992 HEAD@{16}: rebase (squash): # This is a combination of 12 commits.
    73c2394 HEAD@{17}: rebase (squash): # This is a combination of 11 commits.
    fcc7b05 HEAD@{18}: rebase (squash): # This is a combination of 10 commits.
    770d5d4 HEAD@{19}: rebase (squash): # This is a combination of 9 commits.
    19bf9eb HEAD@{20}: rebase (squash): # This is a combination of 8 commits.
    fbba96b HEAD@{21}: rebase (squash): # This is a combination of 7 commits.
    ad58a66 HEAD@{22}: rebase (squash): # This is a combination of 6 commits.
    e9e5ad1 HEAD@{23}: rebase (squash): # This is a combination of 5 commits.
    74cb8e4 HEAD@{24}: rebase (squash): # This is a combination of 4 commits.
    0ccc2cc HEAD@{25}: rebase (squash): # This is a combination of 3 commits.
    fcc3a94 HEAD@{26}: rebase (squash): # This is a combination of 2 commits.
    cf222f7 HEAD@{27}: rebase (continue): parent 033f1e42b85af682f55a79f4f5bef401af0a1125
    02b73ef HEAD@{28}: rebase (squash): # This is a combination of 7 commits.
    d021157 HEAD@{29}: rebase (squash): # This is a combination of 6 commits.
    46787cf HEAD@{30}: rebase (squash): # This is a combination of 5 commits.
    54d1843 HEAD@{31}: rebase (squash): # This is a combination of 4 commits.
    95a4b10 HEAD@{32}: rebase (squash): # This is a combination of 3 commits.
    66c7cb2 HEAD@{33}: rebase (squash): # This is a combination of 2 commits.
95a4b10 HEAD@{32}: rebase (squash): # This is a combination of 3 commits.
66c7cb2 HEAD@{33}: rebase (squash): # This is a combination of 2 commits.
8abe618 HEAD@{34}: rebase (pick): DB CC
解决方案

核心操作步骤

  • 执行硬重置,将本地分支完全恢复到目标提交699546a的状态,直接丢弃之后所有的squash、reset和revert操作:
    git reset --hard 699546a
    
  • 若已将错误提交推送到远程分支(如origin/jdbc_exporter),需强制推送覆盖远程(仅在你是分支唯一维护者或已和团队沟通确认后执行):
    git push origin jdbc_exporter --force
    

关键说明

  • 硬重置后,本地代码会完全匹配699546a提交的状态,所有后续错误操作产生的变更都会被清除,精准保留你需要的"Azure JDBC Changes"内容。
  • 若你有未提交的本地修改不想丢弃,可以改用git reset --soft 699546a,但此操作会将后续变更保留为未提交状态,需自行清理不需要的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 09:17:02