git:删除一系列错误提交引入的更改

Kip*_*ras 3 git git-rebase

说我有一个git repo,有这样的提交历史:ABCDE

现在,我突然意识到,提交B和C是完全有缺陷的,没有必要.另外,假设我完全可以自由地重写项目历史(也许我正在单独从事该项目).

我有另一个分支指向提交B和C,所以丢失它们不是问题.如果我真的需要这些更改,我可以签出该分支并查看它们.

但对于主分支,我想强制历史为A-D'-E',其中D和E不仅具有修改的父列表,而且不包含由提交B和C引入的更改. .

这可能吗?如果是这样,怎么样?

Seb*_*anK 5

git rebase -i HEAD~5

然后,从提交列表中删除不需要的提交