It is great to have a remote central repository because your entire codebase is backed up in the case that your workstation should fail - and on top of that, you can use it to do some code coordination to move your files around (and stop using FTP). I setup a gitolite server which acts as a central repository for all of my git projects. In my opinion, if you're using Windows primarily, Mercurial might be a better choice. I suggest taking a look at both Git and Mercurial and making a decision from there. Any of them will be better than manually copying or not having anything at all. You should get a DVCS setup, and which one you choose is entirely up to you. Here's how my setup works - this may or may not be feasible for you, but I hope it helps somehow. There are a lot of tutorials out there on git. Git doesn't require a heavy server on your desktop, just one small binary. This makes git particularly suitable to individual or remote development. You can have an authoritative central server if you want one, but you don't need to make very commit to that server all the time. That is - each developer has their own repository, and merges happen when they need to happen. Git is different from traditional revision control systems in that it was designed to be used in a distributed fashion. In more complex cases, two or more developers make changes to the same region of code and it needs to be manually merged. In the simplest case, two people edit the same file in different places and you can safely take both modifications in sequence. In a multi-developer environment, version control provides the same benefits, but you also have to consider the case when multiple people edit the same file at the same time.
#Best php ide and version control full#
In a single user environment, version control allows you to have fine-grain control over your versioning, often in a way that is more space efficient than full file copies because the old versions are stored as diffs. Version control - when used properly - is much better than simply copying files around.