Remove an old Git commit from a branch without using a reverse patch?
本问题已经有最佳答案,请猛点这里访问。
我有一家这样的总店……
1 | A -- B -- C -- D -- E -- HEAD |
是否有任何命令删除一个旧的提交并保留其他的提交,比如commit c?
终于变成这样了
1 | A -- B -- D -- E -- HEAD |
号
我知道我们可以使用一个反向补丁并应用一个新的带有反向补丁的commit来删除commit c,但是树结构不会那么清晰,看起来很笨重,也就是说。
1 | A -- B -- C -- D -- E -- C(apply reverse patch) -- HEAD |
有人知道吗?
使用交互式钢筋网。例如,要返回5个提交:
1 | git rebase -i HEAD~5 |
然后在弹出的编辑器中,删除包含要删除的提交的行。
交互式钢筋网可以工作,但只需一个命令即可完成:
1 | git rebase --onto B C |
号
仍然可以看到关于"交互式钢筋网"答案的评论。它们也适用于这里。