Contents

GitHub

(Back to Blog)

Preferred option to login at this site is via GitHub. Even if you have no account there, it is worth to create it.

If you do not even know what GitHub is or why it is useful for you as a programmer (even beginner!), here is a short introduction.


Versioned Storage for Your Projects

As you write more and more programs, even simple, you find out that it is hard to manage their versions. Sometimes you do extensive changes and then want to rewind them after a month. Sometimes you want to make several variants of application and so on and so on. That is why Version Control Systems are so widely used.

If you ever tried to get hired at some programming job you usually find in requirements words like Git, SVN, Mercurial etc.

To use such systems you usually download specific client (either GUI or command-line oriented), for example for Git and use it to submit your files to repository or fetch them back again. Most wonderful is that every commited change is shown as a separate revision, for example see the list of revisions for some small project.

If you click some of these commits you will be able to see what lines have been changed and in which files. For example like this.

It is extremely convenient for using yourself, for browsing your codes later and for collaboration between people (there are nice features like branching a copy from some project and later pull-requesting your changes to be merged back).

GitHub itself is one of the most popular free repository for your projects. After few months of using it your profile at GitHub will look like this - and you may expect that your potential employer will ask you to show your projects there at interview.

So if you haven't tried yet - it would be good to spent some time reading or watching tutorials on Git and GitHub. Millions of people use this stuff and find it very convenient. Probably you will agree when you get used to it.


Storing Issue / ToDo Lists

For every project in GitHub there is a dedicated isses list. You can write here tasks for yourself or your friends / colleagues. Once the task is done it could be closed etc. Issues allow inserting simple links to each other or to commits in the project repository.

Though this is only basic variant of issue tracker, it is nevertheless quite user-friendly and convenient, especially for beginner's purpose. You can create blank project to collect issues not related to any specific one.

You may see how CodeAbbey's ToDo List look like.


Pasting Code Snippets or Gists

Sometimes you need to paste your code on the web to show it in the forum etc. If you need to paste several files then pastebin becomes not very convenient. However GitHub provides great tool named Gists.

It is far easier to use compared to Git repos (though gists are stored in the same way for your convenience) - and what is very important, it allows storing multiple files, versioning or branching them.

Here is an example of gist consisting of two files.


Storing static Web-Pages

GitHub is also great to store static web-pages and static web-sites. The facility used is GitHub Pages here you may save your HTML+JavaScript+CSS files in a form of git repo to be beautifylly rendered on a web.

CodeAbbey itself uses this feature to store demos for game-related problems. Here is our repo where you can find some interesting though small scripts to learn from. You may see the example of page served by github here - or it could be nested in any other page, even this:

This script is hosted at GitHub Pages as explained above. Here is its repo.
Click in the middle to move forward
Click at sides to turn left or right