The three are often a source of confusion.
Software that handles source code versioning, letting you make and track local file changes and share changes with a remote repository.
A cloud service for remote hosting of git repositories. In addition to hosting your code, the site helps manage software development projects with features like issue tracking, collaborating with other GitHub users, and hosting web pages.
GitHub offers free services for open source projects (accessible to the public) and paid tiers for private projects. For public projects, anyone can see code you push to GitHub and offer suggestions, or even code, to improve your project. GitHub currently hosts the source code for tens of thousands of open source projects, but is not alone. BitBucket and GitLab.com offer comparable services.
GitLab (a cloud service a lot like GitHub) comes in two flavors, a publically available cloud service and a cloud service for SESYNC science teams. Use the SESYNC server https://gitlab.sesync.org to host private projects shareable with other SESYNC users.