title: Is there a way to get this TFVC functionality in Git?
body: <p>We are transitioning one of our .NET apps from using TFVC to Git. One practice we have now is the use of shelve sets to point our local development environments at different database, for example.</p>
  
  <p>Say I am in my local dev environment, and I want to use the QA database. I pull down a shelveset "Point dev at QA". This will make the appropriate connection string swap for me. When I am done, I just undo the changes from the shelveset and check in my code.</p>
  
  <p>The reason this is done via a shelveset, is that the code base is old, inherited, and monolithic, and the connection strings are referenced (and used) ~30 times, with no ability to set up a transform (local development is all custom and hosted on a local IIS site. The app itself is built with a custom powershell script).</p>
  
  <p>Is there a way to do something similar to this in git? Can I have like a floating commit, not in master, that I can yank in temporarily and undo? I suppose I am just describing a shelveset though. Or make the changes on some remote branch that I temporarily merge with when I need to change environments?</p>
  
  <p>Please note that I understand that the only viable option may be to modify the code base to accept some sort of environmental setting, consolidate connection strings, etc., but as of now that is a huge lift and I was wondering if it was possible to do so without having to make that change.</p>