GitLab is a Git Hosting product, however, it is much more. It bundles multiple separate ideas into a single product:
It is ideal for teams looking for a solution that not only allows you to run your own git hosting solution, but also bundle it with an open-source CI system. Not available at the moment with either Github of BitBucket.
The honest truth is that 4 years ago, I was an avid Bitbucket user. And most of my DevOps tools that I employ now were bash scripts or Ansible playbooks that were deployed from single developer machines. However, in my current role, we have a large GitLab install and I have moved all of my personal projects into GitLab.com (the hosted solution), mainly to use the following aspects:
Using GitLab CI (alongside the handy GitLab CI Dockerfile template) you can build your own custom container and store it back inside GitLab registry. Wonderful! Please have a look at the project to see more. You can even see the build status inside the GitLab CI Pipelines.
Using these workflows you are able to use GitLab to create custom containers for your software and store them. In fact, this very site is being run from a custom container that is being held inside GitLab.com! Cool eh?!