Patrik Patrik - 1 year ago 81
Git Question

Remove commits that are not connected to the branch

I wanted to merge in some changes from another repo so I added the remote, fetched and merged.
But I did not think that the commits of the other branch would be added.

I backed one commit from my merge and manually added the changed files and pushed that commit.

So now I have two disconnected commit trees in one branch.
Something like this:


And I just want to remove the 1-2-3-4 commits. I don't care about history or any child/parent commits or the files.

I want to keep the A-B-C-D commits with all history.

I have tried:

git reflog expire --expire-unreachable=now --all
git gc --prune=all --aggressive

git rebase [hash]

But nothing seems to work.

Answer Source

If no ref points to 1, 2, 3 and 4, they are dangling and will be removed by gc.
Where do you still see those commits?
Are still some heads or tags point to those commits?

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download