What are the benefits, if any, of having a personal Version Control System? This includes such things as personal projects, hobbies, sample code accumulated over the years, etc.
|
closed as not a real question by gnat, Caleb, Jarrod Roberson, Walter, Klaim Jun 25 '12 at 10:44
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.
|
There are a few additional advantages to using GitHub for personal projects.
There are probably more. |
|||||||||
|
|
I use git and github for my personal projects because:
Minor note: Never use git/github for folders already within Dropbox, UbuntuOne, etc. or they will conflict massively and unhappiness will ensue ! Other tip: Learn how to rebase branches but never after pushing to a remote ! (then just merge). |
||||
|
|
It gives you a single place to hunt for old versions, versus digging through a dusty pile of floppy disks, diskettes, tapes for drives no longer supported, old filesystems, etc. |
|||||||||
|
|
Bitbucket is an interesting option here -- unlike most of the other "cloud SCM" providers, they allow unlimited free private repositories. So you can get almost all the benefits of having your source "in the cloud" without having to share it with everybody else. I was trying to think of what advantages having source control would engender, but that just made me realize I haven't done anything not using source control in the better part of a decade. |
|||
|
|
|
One use I find that hasn't been mentioned is simply looking at changes I've made in code over time, to get better ideas of practices, coding techniques, etc., that I probably should have avoided in the first place. I also sometimes do some statistical analysis (well, really simple analysis) to get an idea of modules that (for example) have been modified a lot, and still have outstanding bug reports, feature requests, etc., to prioritize pieces that should probably be thrown out and rewritten from the ground up. Of course, you can't always do that, but it can give better ideas of places to look at, and think about anyway. |
|||
|
|
|
Another advantage of this is that you can code fearlessly on your own projects. Before I used source control my personal projects had extremely messy code because I was afraid that removing something would evaporate it forever. I can now even delete whole sections of my code base to try alternate solutions to problems instead of having to copy it to a text file or creating weird duplicate projects. |
|||
|
|
|
Change tracking is huge, especially if you're coding in the late nights where you're brains half asleep (half awake?) You can comment the code on check-ins so you can remember why you may have done something confusing? You can revert back if you find yourself coded into a corner (you dont have to ctrl+Z back 2 days of code You can get help from other developer friends if it's on a remote machine. They can easily jump in and start coding... If you're house gets robbed and they take your computer at least you still have your source code and remote development can be huge.. you can work between 2+ computers without needing to keep moving the code around.. |
||||
|
|

