git移除一个指定commit方案

文章类型:git

发布者:hp

发布时间:2026-07-21

一方案

方案一:使用git rebase -i

第一步:找到目标 Commit 的前一个 Commit ID

git log --oneline
# 假设你要删除 bad_commit,它前面的 commit 是 prev_commit

第二步:启动交互式 Rebase

git rebase -i <prev_commit_hash>
# 或者如果删除的是最近第 N 个,可以使用: git rebase -i HEAD~N

第三步:编辑提交列表

pick a1b2c3d 初始化项目
pick e4f5g6h 错误的提交  <-- 将这一行改为 drop e4f5g6h 错误的提交,或者直接删除此行
pick i7j8k9l 修复bug

第四步:保存退出

第五步:处理冲突

git add .
git rebase --continue

方案二:使用git revert

第一步:找到目标 Commit 的前一个 Commit ID

git log --oneline
# 假设你要删除 bad_commit,它前面的 commit 是 prev_commit

第二步:执行 revert

git revert <bad_commit_hash>

第三步:推送远程

git push origin <分支名>

方案三:使用git reset

第一步:软重置

git reset --soft HEAD~1  # 回退最近1个commit,修改保留在暂存区
# 或者
git reset --mixed HEAD~1 # 回退最近1个commit,修改保留在工作区(默认行为)

第二步:硬重置

git reset --hard HEAD~1

第三步:推送远程

git push origin <分支名> --force

二:总结

1:值想撤销最近一次提交,用reset方案

git reset --soft HEAD~1

git reset --hard HEAD~1

2:删除中间某次提交,用reverrt方案

git revert <Commit的哈希值>

3:从历史记录彻底抹除某次提交,用rebase方案

git rebase -i HEAD~n


评论
0条评论遵守法律,文明用语,共同建设文明评论区

暂无评论,快来发表第一条评论吧~