git 删除某次指定的提交
删除指定的commit,需要执行变基操作,在多人协作的项目中,不推荐对已推送到远程仓库的内容进行变基操作
交互式的变基简介
在 rebase
命令中加入 -i
或 --interactive
参数,在交互模式下完成
交互模式会将指定的commit后的所有提交列出,行格式:(action) (partial-sha) (short commit message)
你可以上下移动这些行从而对提交进行重排序。当你退出编辑器时,git会按照你指定的顺序去应用提交,并且做出相应的操作(action)。
操作(action)说明
- edit:使用commit,但是暂停以便进行修正
- squash:使用commit,但是把它与前一次commit合并
- pick:使用commit
- drop:移除commit
git rebase -i origin/master
会将最后一次从origin仓库拉取或者向origin推送之后的所有提交列出。
删除指定的commit
# 首先使用 git log 命令找到需要删除的commit版本的前一次commit的commit_id
# 进入交互模式,进入后不会列出当前版本 git rebase -i commit_id # 进入编辑模式,将第一行(即你需要删除的commit)前的操作符修改为 drop # 修改完成后,退出编辑模式然后保存 :wq