GitHub > GitLab
It is kind of an ironic coincidence for me because today I set up my first official GitHub repository, backed by Git obviously, and it was an amazing experience for me. Git is plain and simple a very impressive tool, for both its extensive capabilities as well as its outstanding documentation.
Just for contexts sake: I had a local project I'm working on which is used on several servers. Because of that the project isn't only kept in a local repository but also in a central one. So basically whenever I have an important change I 'git push' that onto the main repository and done. Then this can be 'git pull'ed' on another server so that they're automatically in sync with my copy. So far, so good.
I decided to upload and maintain this project on GitHub as well. As such I created the repository, copied the URL, set up a new (dedicated) branch in my local project, added my GitHub repository as a so called 'remote' and then assigned that as the new branch upstream.
As a direct result I now have 1 project which can be pushed onto multiple upstreams with ease. All I have to do is select ('checkout') the appropriate branch and run 'git push', couldn't be easier.
Can it get any better than this? Of course it can! GitHub also provides you with a nice wiki for your repository which you can use to document your work. And that wiki is basically a Git repository in itself. Which I then added as a submodule in the project I mentioned above. But only on the master branch which is maintained locally (pushed on a locally hosted repository), on my 'github' branch the entire .gitmodules file gets excluded as such there's no risk of my main project getting mixed up with my GitHub project.
So why am I sharing all this... First of all because GitHub / Git left me truly amazed at the things I could do there. But second because I cannot imagine doing all this just as easily solely based on GitLab. Judge for yourself: just compare the GitHub help with the GitLab help.
And last time I checked GitHub actually knows how to make and maintain backups ;)