Visual Studio 2013, Git and Shelving
Need some help on how I can shelve uncommited changes in a Git repository using Visual Studio 2013. I come from PHPStorm where you can shelve uncommited changes on one branch, switch to another and unshelve.
However, I can’t find/see how this can be done in Visual Studio. Could someone shed some light on this issue?
Just to clarify why this may be needed: I might be working on branch X, and then figure that I am the wrong branch and I should be on branch Y. I need to shelve all changes from branch X, switch to branch Y, unshelve changes and then commit.
3 Solutions collect form web for “Visual Studio 2013, Git and Shelving”
git the concept you’re looking for is
stash. You add your changes as if you are going to commit them, and you then stash them with
git stash. After changing branches, you can
git stash apply or
git stash pop (with the former leaving the stash available for reuse).
I’m familiar with the
shelf concept from Perforce, which has a useful difference from Git’s stash — where you can send a shelf to the server and share it with other people, you cannot do that with git. However, with git you can just create a branch with the stash and push that to the server, allowing others to merge it where it’s needed.
Microsoft does not provide a way to use this feature.
Visual Studio 2013 Update 2 does not support shelving (called stashing in git) for git repositories, but you can use 3rd party tools on the repository itself (I use SourceTree).
Maybe I showed up late to this one.
I use TortoiseGit for this… It works really well and can work alongside Visual Studio as it is just an explorer plugin.