Hi, I'm using SourceTree with a Bitbucket repository. I recently made a bunch of experimental changes to my working copy, most of which I never want to check in. I eventually decided that it would be easiest to just reset my working copy to my last commit and start fresh from there–deleting any files I had added and undoing any changes I'd made to files already in the repository. I looked at some questions on-line, and it sounded like I could do this with remove and discard commands. This didn't work like I expected. I ended up with an unpushed commit in Sourcetree that looks like it deletes the files I merely wanted to remove changes from, and indeed, these were missing in my working copy. (I did make a local backup first, just in case.) Eventually, I was able to do a Checkout command on my last pushed commit, and got my working copy back to what I wanted.
So at the moment, my working copy has what I want, and the on-line repository has what I want. But when I open SourceTree, it still shows the unpushed commit, and I'm not sure how to get rid of it. Maybe I could push it and revert it somehow, but I'd prefer to just never push it to the on-line repository. I thought maybe I could use the command "Reset current branch to this commit", but it's not available when I right click on the last commit I pushed. The unpushed commit is marked as "master" and "1 ahead". The last pushed commit is marked as "HEAD" and "origin/master".
In case that description wasn't clear, I'll also include a screenshot of what I'm looking at. Thanks for any help!
SourceTreeScreenshot.png
As I said, if I right clicked on the commit I wanted, the option "Reset current branch to this commit" was light grey and could not be selected. But I did finally figure it out. I had a "detached HEAD". I had to first use the command:
git checkout master
Only then could I use the command:
git reset --hard 564a24f
to get rid of the unpushed commit.
I wasn't familiar with the concept of a "detached HEAD", which made it difficult to search for a solution. But after some very circuitous searching, I found this page useful:
http://stackoverflow.com/questions/10228760/fix-a-git-detached-head
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have written a detailed article with screenshots. Sharing in hope that it would help: https://www.attosol.com/undo-in-git-using-sourcetree/
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It isn't possible in SourceTree via GUI-Elements.
You have to open a Terminal in SourceTree and do this via commandline as described above.
According to Izhar Aazmi's comment it II possible - You never stop learning ....
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Nope, this is not correct. It is totally possible using GUI. See https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.