My employer still uses VisualSourceSafe6. Everything is checked-in into the main project directory in VSS. They are not using branching in VSS. Check-in's are supposed to be ready for release to QA and should not break the build (not enforced).

I want to use git as my local repository so I can track changes per feature (branch) and have history of my changes before I commit them to VSS. I need this because some of the changes might span more than 3-4 days before they can be checked-in to VSS. 

NOTE: my understanding for some git concepts is very new and might be offbase.

After reading these similar questions:

- [Using Git with Visual Source Safe 6.0][1] 
- [How Best Can I Use Git When My Employer Uses VSS?][2] 
- [Combine DVCS with Visual Source Safe][3]


Following is what I was thinking of doing:

C:\VSS\ProjectA 
where I perform VSS specific actions get-latest-version, chechout, and checkin etc. The solution/project file will have bindings to VSS since other developers will still use VSS and some might use git with VSS like me.

C:\MY\ProjectA
where I will be doing my development work and using git workflows.

To setup the folders I did:

- Get latest version from VSS into `C:\VSS\ProjectA`
- `C:\VSS\ProjectA>git init` and `C:\VSS\ProjectA>git add .`, this becomes my master branch
- `git clone C:\VSS\ProjectA C:\MY\ProjectA`, this becomes my development clone

**Q:** If I have VSS bindings in my solution/project file, VisualStudio will try and connect to VSS even from my git cloned folder `C:\MY\ProjectA`. So I need to remove the VSS bindings after cloning, correct?


When working on a feature I need to:

- get latest version from VSS into `C:\VSS\ProjectA`
- **Q:** do I need to commit the changed file to the master git repository?
- `C:\MY\ProjectA>git fetch` and `C:\MY\ProjectA>git checkout`, **Q:** correct?
- do whatever branching, commits, merge, rebase etc in my development repository
- get diff of my development repository and master repository and checkout those files in VSS
- `C:\MY\ProjectA>git push`, **Q:** correct?
- `C:\VSS\ProjectA>git checkout`, **Q:** correct?
- `C:\VSS\ProjectA>git commit`, **Q:** correct?
- checkin changed files to VSS



[1]: http://stackoverflow.com/questions/1903790/using-git-with-visual-source-safe-6-0
[2]: https://softwareengineering.stackexchange.com/questions/260718/how-best-can-i-use-git-when-my-employer-uses-vss
[3]: http://stackoverflow.com/questions/811999/combine-dvcs-with-visual-source-safe

**UPDATE** it seems git for windows (VisualStudio2015) does not yet support pushing to non-bare local repositories, is there any workaround?