Photo credit: https://www.flickr.com/photos/spacex/44451125454/
I just made a commit (6452234) to master, but realized that is should have been committed to a branch and I want master pointing at a previous commit (bb5331e). How do I resolve this?
C:\code\project>git lg * 6452234 - (HEAD, master) reformat test variables * bb5331e - (origin/master) more unit tests
First, create the new branch where you would like your commit to live:
git checkout -b cool-feature
Now your master and the new branch are pointing to the same commit, like this:
C:\code\project>git lg * 6452234 - (HEAD, master, cool-feature) reformat test variables * bb5331e - (origin/master) more unit tests
Go back to the master branch.
git checkout master
Now, reset your master branch to point the revision that you want to go back to:
git reset --hard bb5331e
Master is now pointing to the old revision and the new revision is on the branch only. Checking the log, we can confirm this:
C:\code\project>git lg * bb5331e - (HEAD, master, origin/master) more unit tests
To confirm that the commit has been moved to your branch, just checkout the branch and run the log:
C:\code\project>git checkout cool-feature Switched to a new branch 'cool-feature' C:\code\project>git lg * 6452234 - (HEAD, cool-feature) reformat test variables * bb5331e - (master, origin/master) more unit tests
Special thanks to Mark's great blog entry on not using Git pull. Also if you want to know how I got my Git logs to show up using 'git lg', check out my previous entry on git alias.
Share this: