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?

  • git - merge conflict when local is deleted but file exists in remote
  • How to get list of all git remotes present on my machine?
  • In Gerrit, how can I prevent a patch set from being submitted that is not completely up-to-date?
  • edit a file in all commits in git
  • git log - line too long - no line break
  • get commits since a particular date in git based on commit date
  • 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.


  • git: finding which merge brough commit into the current branch
  • What is the point of using git alias?
  • Push all local branches to origin in git
  • Git Cherry-pick vs Merge Workflow
  • How do you manage large git repositories?
  • What is the correct way to configure Qt Creator to use Git?
  • 3 Solutions collect form web for “Visual Studio 2013, Git and Shelving”

    In 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.

    Git Baby is a git and github fan, let's start git clone.