I accidentally pushed a staged change in a new branch in Visual Studio 2017 to my local repository. It hasn't been pushed to the remote repository. I want to get rid of it but can't find a way to do this. I rebased from local master branch to the new branch. Then I deleted the new branch. But Outgoing Commits still shows it. How to delete it or revert it?
This question is related to
git
visual-studio
visual-studio-2017
Open the history tab in Team Explorer from the Branches tile (right-click your branch). Then in the history right-click the commit before the one you don't want to push, choose Reset. That will move the branch back to that commit and should get rid of the extra commit you made. In order to reset before a given commit you thus have to select its parent.
Depending on what you want to do with the changes choose hard, which will get rid of them locally. Or choose soft which will undo the commit but will leave your working directory with the changes in your discarded commit.
I could not find a single good answer that helped me get rid of this issue.
Let's say the name of branch, you accidentally committed changes to, is master
. Following four simple steps proved like a world to me:
master
master
remotes/origin
Use git reset --soft HEAD~
in the cmd from the .sln folder
I was facing it today and was overwhelmed that VSCode
suggests such thing, whereas it's big brother Visual Studio
doesn't.
Most of the answers were helpful; if I have more commits that were made before, losing them all would be frustrating.
Moreover, if VSCode
does it in half a second, it shouldn't be complex.
Only jessehouwing's answer was the closest to a simple solution.
Go to Team Explorer
-> Sync
.
There you'd see the all the commits. Press the Actions
dropdown and Open Command Prompt
You'll have the cmd window prompted, there write git reset --soft HEAD~
.
If there are multiple undesired commits, add the amount after the ~
(i.e git reset --soft HEAD~5
)
(If you're not using git
, check colloquial usage).
I hope it will help, and hopefully in the next version VS team will add it builtin
Assuming you have pushed most recent changes to the server:
Once you reopen the project both commits and changes should be zero.
Try to rebase your local master branch onto your remote/origin master branch and resolve any conflicts in the process.
Go to the Team Explorer tab then click Branches. In the branches select your branch from remotes/origin. For example, you want to reset your master branch. Right-click at the master branch in remotes/origin then select Reset then click Delete changes. This will reset your local branch and removes all locally committed changes.
You have 2 options here to do that either to discard all your outgoing commits OR to undo specific commit ..
1- Discard all your outgoing commits:
To discard all your outgoing commits For example if you have local branch named master from remote branch, You can:
1- Rename your local branch from master to anything so you can remove it. 2- Remove the renamed branch. 3- create new branch from the master
So now you have a new branch without your commits ..
2- Undo specific commit: To undo specific commit you have to revert the unneeded by:
1- Double click on the unneeded commit. Double click on the unneeded commit 2- Click on revert Click on revert
But FYI the reverted commit will appear in the history of your commits with the revert commit ..
I fixed it in Github Desktop Application by pushing my changes.
Source: Stackoverflow.com