A code repository is an archive of the code itself that is being worked on. Beyond the code itself, you can keep things such as documentation, notes, web pages, and other items in your repository. A code repository is required for any successful software development project.
If we use a house as an analogy, we can break things down further. The house itself would be analogous to your software product, with the architecture and materials of the house being analogous to the code itself. Where does your house go? On your land. In our analogy, your repository is like the land that your house sits on.
A repository (or repo for short) can be public or private. There is something special to say about the developer community when it comes to collaboration. You see levels of collaboration amongst coders taking steps beyond many other industries. Very often, you will find public repos, where people give their code out for anyone to use. Sometimes, people keep their repos public because it is an accomplishment for others to be implementing your code in their product. In other cases, open repos help stimulate innovation, as quicker innovation can happen when there are many people working on the same project.
Why You Need a Code Repository Hosting Service
So what's so special about the different repo hosting services out there, and why do you even need one? You can run your repository just from your own machine with no extra tools, but when it comes to collaborating with others, you're best off using a hosting service that can run your repo from the cloud.
Here's where you might say, "But I'm the client, not the developer, I don't need to collaborate with developers!" Think back to the house analogy. If you, the client, don't care about getting access to the repo, that's like saying the construction company can build YOUR house in their own backyard. How are you going to get the house transferred from their land to yours? It's almost impossible.
But if you build the house in the cloud (OK...the analogy is starting to break down), you can access it from anywhere, and transferring ownership is as easy as pressing a button. So you need to choose the best cloud provider out there for hosting your code repository.
There are three repository hosting services that we find not only most common, but also most feature-rich: GitHub, GitLab, and Bitbucket. All three are great services, but come with their own pros and cons.
GitHub is one of the most popular code repositories out there. Aloa uses GitHub for many of our client projects. It is a great repository for documentation purposes and is commonly used for collaboration. If you are working in teams, with other developers, GitHub is a great starting spot.
GitHub offers a list of popular features:
- Commit history is visible
- Pull requests
- Issue tracking
- Email notifications
GitLab is also a very common repository. Aloa uses GitLab for some of our clients as well. Just as GitHub does, GitLab offers many of the same features: visible commit history, pull requests, issue tracking.
A bonus of GitLab is that it offers a free tier for private repositories. If what you are working on contains sensitive information and you want to have more security right off the bat, then GitLab may be the option best suited for you.
Like GitLab, Bitbucket also offers a free tier for private repositories. Aloa uses Bitbucket for a few of our Clients as well. Another bonus to Bitbucket is that it has a REST API to build 3rd party applications. You can also search for code in a dynamic and efficient manner.
- Like GitHub, Bitbucket offers many similar features:
- Commit history
- Pull requests
- Issue tracking
Summary - GitHub vs. GitLab vs. Bitbucket
So if you read this list, I'm sure you're thinking, "well that wasn't very helpful." All three services offer just about what you need, but there is a reason why you would want to go with some over others.
In many cases, you're first going to go based off of what your developers prefer. If you want free repositories, then Bitbucket or GitLab are going to be your go to. Bitbucket does have a limit of five users on their free tier. GitLab is free no matter how many users you have. Bitbucket has a nicer user interface, so many companies will look to Bitbucket over GitLab for that reason.
If you have any specific questions, and want to get our take on repositories, feel free to reach out to us! firstname.lastname@example.org