误操作git commit --amend后的修复方法咨询
修复Git误执行
git commit --amend导致的合并提交错误 核心修复思路:利用Git reflog恢复被覆盖的原始合并提交
Git会记录所有本地操作历史,哪怕是被覆盖的提交,都能通过reflog找回。具体步骤如下:
查找被覆盖的原始合并提交哈希
执行命令查看所有本地Git操作日志:git reflog在输出里寻找带
merge标记的记录(比如abc123 HEAD@{2}: merge feature/xxx: Merge made by the 'recursive' strategy.),记下这条记录的哈希值(示例中的abc123)。恢复到原始合并提交,保留当前工作区修改
用找到的哈希值执行软重置,恢复原始合并提交的同时,保留你之前处理后的工作区内容(filename.txt已取消暂存):git reset --soft <原始合并提交哈希>重新提交正确的变更
此时工作区和暂存区状态已符合预期,直接提交即可:git commit -m "你的正确提交信息"
补充说明
- 若reflog里找不到目标记录,可尝试
git fsck --lost-found查找孤立提交,但本地操作的情况下reflog通常会保留至少30天的历史。 - 由于操作仅在本地分支进行,未推送到远程仓库,修改历史不会影响其他协作人员。
内容的提问来源于stack exchange,提问作者Jim
相关产品推荐
相关产品推荐

