Git - 删除提交

时间:2012-08-24 22:54:18

标签: git github revert

几个月前,我在Github上分发了一个回购,并做了三次提交。我想提交一个带有一些错误修复的pull请求回到原始项目,但其中一个提交有一些不适用于它们的更改。

我该如何解决这个问题?我来自svn背景,所以大多数术语等都有我所期望的非常不同的含义。

2 个答案:

答案 0 :(得分:1)

创建一个只包含所需更改的新分支,然后从该分支而不是主分部提交拉取请求。执行git branch origin my-new-branch-name将创建一个可以处理的新分支,而无需对您的工作进行任何更改。然后git checkout my-new-branch-name将开始处理它。然后应用您的更改,例如git cherry-pick my_commit_id_1 my_commit_id_1。最后git push ssh://remote.host/path/to/repo my-new-branch-name会将其推送到您可以发出拉取请求的服务器。

答案 1 :(得分:1)

要删除提交,您可以执行以下操作。

  • 运行git log以获取要删除的提交的哈希值
  • 运行git rebase --interactive abc123^,其中abc123是错误提交的哈希值
  • 从编辑器中弹出的列表中删除错误提交(删除带有该提交的行:保留其他行)
  • 保存并关闭编辑器,Git会将所有后续提交重新绑定到错误提交的父级