开发者

Remove an old Git commit from a branch without using a reverse patch? [duplicate]

This question already has answers here: 开发者_运维百科 How do I delete a commit from a branch? (37 answers) Closed 7 years ago.

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜