2

情况:Bob 将他的开发分支 BranchA 合并到 master (commit hash [c1]),然后在 master (commit hash [c2]) 上执行另一个提交以调整一些东西并删除一些他忘记的调试行。然后在 master 上执行更多的提交(散列 [c3] 和 [c4]),它们不会触及 [c1] 和 [c2] 所做的任何相同代码。

好吧,Bob 实际上并没有进行这些更改的权限,我们现在想将它们(两者)都从 master 中支持出来。

如果我们这样做git revert -m 1 [c1],它会给出这个错误:

错误:无法恢复 [c1]... 合并到 BranchA(拉取请求 #398)
提示:解决冲突后,标记更正的路径
提示:使用 'git add <paths>' 或 'git rm <paths>'
提示:并使用 'git commit' 提交结果

那么,我们应该如何正确删除该代码呢?作为说明,我们仍然希望将提交 [c3] 和 [c4] 保留在我们的代码库中——我们只需要在 [c1] 发生的合并和在 [c2] 处取出的提交。

4

1 回答 1

0

重新调整你的 Head~4 (因为有 4 次提交 - 只需使用你想要返回的任意数量的数字)。然后在变基时删除 c1 和 c2。

一些文档:http: //git-scm.com/book/en/Git-Branching-Rebasing

刚才,我也在 SO 中找到了这个相关的问题:Delete commits from a branch in Git

于 2013-08-13T19:26:46.070 回答