【git] 如何移除一个指定的 commit【热度: 762】

关键词:commit 移除

移除某一个指定的 commit 通常意味着要在版本控制系统如 Git 中更改历史记录,这通常涉及到一些操作风险,尤其是当这个 commit 已经被推送到远程仓库且被其他人使用。下面是几种常见的移除指定 commit 的方法,但在进行这些操作前,请确保备份你的代码,以防不测:

使用 git rebase 交互式命令

  1. 打开终端或命令行界面。
  2. 定位到你的 Git 项目路径下。
  3. 执行 git rebase -i HEAD~X 命令,X 是从当前回到你想要移除的 commit 的数量加 1。这条命令会打开一个交互式界面,列出最近的 X 次提交。
  4. 找到你想要移除的 commit,并将其前面的 pick 改为 drop。或者干脆删除那一行。
  5. 保存并关闭编辑器,Git 会自动开始 rebase 进程。

如果你只是想修改最近的一次 commit

如果你仅仅是想移除最近的一次提交,可以这样做:

  1. 使用命令 git reset --soft HEAD~1 将最后一次提交回退到暂存状态,不影响工作目录。
  2. 使用命令 git reset --hard HEAD~1 将最后一次提交完全撤销,包括工作目录和暂存区的改变。

警告

  • 修改已经被推送到远程仓库的历史是非常危险的,如果其他人已经基于这些提交做了开发,这将引起合并冲突。
  • 如果你需要修改已经推送过的提交,完成上述操作后,需要使用 git push --force 来强制推送到远程仓库,这样也会影响到其他协作者的开发进程。