Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git remove commit from a merge

Tags:

git

branch

commit

I have the following problem...

I was trying to merge a remote branch into my local, then push the changes to the repo... Ok, I fetched the remote branch which had three commits, but one of them is not finished, so I don't want push one of these commits to the repo... when I run git log, it shows me this:

commit: A1
merge: M1
    merge remote branch "remote/branch"

commit: A2 commit: A3 commit: A4

And I want remove commit A2... how can I do it? I was searching and some people says to use git rebase or git reset, but I'm not sure which one should I use... just in case, I hadn't pushed these changes

Thanks for the help

like image 275
markos Avatar asked Aug 26 '26 20:08

markos


1 Answers

If you haven't pushed your merge commit yet (that implies A2 was not pushed yet either) you can rebase interactively:

git rebase -i HEAD~3

Now delete the merge commit line. Then, reorder the commits so that A2 is the latest one done. Once that is complete, branch:

git branch incompleteFeature

Then reset master to the previous commit:

git reset --hard HEAD^

Now you can sync up properly and the incomplete feature will sit in it's own branch until you decide to merge it in later when it's ready.

hope this helps

like image 147
Adam Dymitruk Avatar answered Aug 28 '26 15:08

Adam Dymitruk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!