情况:Bob将他的开发分支BranchA合并为master(commit hash [c1]),然后在master(commit hash [c2])上执行另一次提交以调整某些内容并删除他忘记的一些调试行。然后在master上执行一些提交(哈希[c3]和[c4]),这些提交不会触及[c1]和[c2]所做的任何相同代码。
好吧,Bob实际上没有权限进行这些更改,我们现在想要将它们(两者)都退出主人。
如果我们git revert -m 1 [c1]
,则会出现此错误:
error: could not revert [c1]... Merged in BranchA (pull request #398) hint: after resolving the conflicts, mark the corrected paths hint: with 'git add <paths>' or 'git rm <paths>' hint: and commit the result with 'git commit'
那么,我们应该如何正确删除该代码呢?作为一个注释,我们仍然希望在我们的代码库中保持提交[c3]和[c4] - 我们只需要发生[c1]的合并并且[c2]的提交被取回。
答案 0 :(得分:0)
重新启动你的头~4(因为有4次提交 - 只需要使用尽可能多的数字你想回去)。然后在变基时删除c1和c2。
有关该文件的一些文件:http://git-scm.com/book/en/Git-Branching-Rebasing
刚才,我在SO中发现了这个相关的问题:Delete commits from a branch in Git