删除指定的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
代码语言:javascript复制# 首先使用 git log 命令找到需要删除的commit版本的前一次commit的commit_id
# 进入交互模式,进入后不会列出当前版本
git rebase -i commit_id
# 进入编辑模式,将第一行(即你需要删除的commit)前的操作符修改为 drop
# 修改完成后,退出编辑模式然后保存 :wq
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:Yiiven https://cloud.tencent.com/developer/article/2193114