git commit 删除不想要的commit历史,或是删除之前的commit记录

作者:黄鋆
链接:https://www.zhihu.com/question/22132675/answer/20420691
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
https://www.zhihu.com/question/22132675
核心命令: git rebase -i <upstream>
以及: git push -f
首先是要在本地把这两个提交删除:用 git rebase -i 928582641a 指定 base 为你需要删除的提交的前一个提交, 进入 Interactive Rebase删除 pick med 和 pick test2 那两行, 保存退出. 之后可能 git 会提示出现 conflict, 根据提示完成处理.接着就是把本地内容 Force Push 到远端. 执行 git push -f 由于你现在本地的历史已经和远端的历史出现分歧, 要推送到远端时, 必须要 Force Push 才行, 也就是 -f 参数的用意. 如果你所谓的 “撤销” 是说修改保留, 但提交取消, 步骤也是一样的, 只是把 pick med 和 pick test2 这两行的 pick 改成 squash, 保存退出后根据提示, 重新编辑一下 commit message, 并完成剩下的操作. 这里其实就是把 med 和 test2 这两个提交合并到前一个提交中.建议在操作的时候花点时间, 仔细阅读一下 Interactive Rebase 时的提示, 理解 pick/squash, 以及更多的 fixup/edit 等的命令的功能和用法.

猜你喜欢

转载自blog.csdn.net/Papageno_Xue/article/details/81078935