I was using TFS Source Control to store my code in a centralized repository but the only drawback was, I wasn't able to just download a single file and make changes and check it back in. Also, each PC is required to have a VS license to use Source Control.

I was researching on other options and came across Git and I installed in in my PC. I have created a repository and still learning the ins and outs. I do have some question which I hope this community can help me answer.

I have a server where I would like to check in all repositories and allow multiple PCs to download the file to their local PC and make changes and commit back to the server.

Here is a scenario:

![enter image description here](https://i.stack.imgur.com/Cehxe.png)

So if I create a new files/project in my PC (PC 1), I would like to commit to the server. Once that is done, PC 2 would like to download that to the local machine and make changes and commit it back to the server. PC 2 would also like to have the ability to pick and choose the file it wants to download locally to make edit.

Is it possible with Git or is there a better alternate to TFS Source Control.

I would like the following function:

* Give the freedom to user to check-in/check-out folder/file/project
* Use a centralized repository server where the user can check-in their folder/file/project
* Can use windows explorer or minimal setup

Thanks for the help.