Remove an old Git commit from a branch without using a reverse patch? [duplicate]
I have a master branch like this..
A -- B -- C -- D -- E -- HEAD
Is there any command that remove one of a old commit and retain the others, say commit C?
finally it becomes like this
A -- B -- D -- E -- HEAD
I know that we can use a reverse patch and apply a new commit with reverse patch to remove commit C, but the tree structure will not be so clear and looks bulky, i.e.
A -- B -- C -- D -- E -- C(apply reverse patch) -- HEAD
Anyone knows?
Use interactive rebase. For example, to go back 5 commits:
git rebase -i HEAD~5
Then in the editor which pops up, delete the line containing the commit you want to remove.
Interactive rebase works, but to do it with just one command:
git rebase --onto B C
Still see the comments on the "interactive rebase" answer. They apply here, too.
精彩评论