I’m still learning git after 2 years and sometimes I think I’ve got a handle on it and suddenly I feel like whats happened…
So I was on a branch lets call it fixA
and I pushed a PR from that branch and got it merged. Then I started working in branch fixA
(when I should have been on fixB
) on a new issue but didn’t go back to master. I would normally do a git pull upstream master
from master. I started working and then made a commit and pushed it. Then I realized it was the wrong branch…not seriously a big problem but I really wanted that commit in a new branch.
So this is what I did.
I first did a git log
and noted the latest commit and the previous commit…call them commitLatest
and commitPrevious
.
I did a git reset --hard commitPrevious
.
Then I did a git checkout -b fixB
.
Then: git cherry-pick commitLatest
.
Even though with the reset hard, git didn’t destroy commitLatest
. I think eventually git would have garbage collected that commit but I’m not sure when that would have happened.