I’d like to introduce the next cool online app; GitHub!
GitHub’s an online social area for developers. It utilises the Git version control system (originally developed by Linus Torvalds to help with work on the Linux kernel; the story behind the name is that Linus said “I’m an egotistical bastard, and I name all my projects after myself” – ie he’s a complete git :D) to track and manage development projects and allow multiple developers to work on them.
Git is a piece of software which allows you to create ‘repositories’, which essentially are a structure which monitors the state of a group of directories and files for changes. Once you’ve changed these files in any way (removing, adding, modifying) you can ‘commit’ your changes to the Git repository (repo). You supply your name and email address along with a commit comment each time you do this, allowing Git to keep track of a complete documented revision history of the project.
Another feature of Git is the ability to push/pull your local repo (along with any commits that’ve been made) to/from a network or online source. This is where GitHub comes in; if you link your local repo to one online on GitHub, then pushing to it updates the online project. It’s all very handy and productive!
One of the powerful things about the Git system is that you can ‘fork’ the repo at a given point, creating multiple ‘branches’. Development in one branch does not affect others, so you can experiment with new code, or have multiple developers working simultaneously. At any point, one can request that a branch be ‘pulled’ into the master branch by the project maintainer. Issues can be raised and comments made if needed.
Cool story, brah; the entire GitHub project itself is an open source project hosted on GitHub – if you’re into web development you can feel free to take a fork off the project and help out with the process! Head here to take a look at their repos, whether you want to contribute or’ve just always wanted to see what the code of an actual fully functioning webapp like this looks like. The GitHub help site is this repo, for example ^^.
For some, this will seem like a VeryBoringPost™, but for any developers/amateur programmers who haven’t come across it yet, you should really get onto this – it’s a great way to share code, collaborate on projects and showcase your own skills to potential employers!
If you want a taste of what this can all look like, and at the same time to see what I’m personally working on at the moment, head to github.com/unwitting/Rush (unwitting’s kind of my name for when I go full nerd and program etc… :D You know, like in the Matrix when they all have aliases when they’re inside… Sort of.) (God damn you, Cipher!)