GitHub has a tremendous role as the place to host open source projects. Nothing is more challenging – everyone has a GitHub account – but if you want to get real work done with a team of people, there are better tools for the job.
Note, this article contains alternatives to Github as a managed resource management platform. Most have similar troubleshooting features, but if you're looking to upgrade to Github's management features, consider looking at Jira or Azure DevOps.
Editor's Note: We use Github internally here at LifeSavvy Media and have no plans to change to anything else.
GitLab is GitHub's closest direct competitor you will find. It has a very similar interface and allows you to create an unlimited number of public and private repos. And while it has some in-depth tools, it still functions the same overall, so you'll find the transition to GitLab quite easy.
GitLab is not just a GitHub clone. It is much more focused on a DevOps workflow, with built-in tools for continuous integration and pipeline support. With GitLab, your CI / CD tool is the same as your source control. This is a common theme among GitHub alternatives, as it is an area that GitHub doesn't focus so hard on.
Better yet, the community version of GitLab itself is open source, meaning you can run your own private version of GitLab for your organization on your own servers, without having to don't have to worry that your proprietary source code is in someone else's "cloud". You can read our guide to installing and configuring GitLab for more information.
BitBucket is Atlassian & # 39; s hosted
git solution. It works great like GitHub or GitLab, but is more suitable for private repositories. You can make it public, but that's not the focus, since BitBucket lacks the "Explore" features.
The interface itself is clean and organizes everything with a sidebar:
If you use Jira, this interface can be quite similar since they are made by the same company. BitBucket includes many integrations with Jira, including branching from Jira issues, linking commits to Jira issues, and editing issues directly from BitBucket. Jira already has some integrations with generic
git but BitBucket and Jira are built specifically for each other.
Really, little more makes BitBucket different from the integration with Jira. If your team already uses Jira intensively, you can use BitBucket.
AWS CodeCommit service is a
git repository with many integrations with the AWS ecosystem. As far as it's a good alternative to GitHub, the interface is a bit clunky as it suffers from the design of AWS's user interface. However, it is useful.
The best thing about CodeCommit are the integrations with EC2 and Lambda. Since source management is on the same platform as your servers, automating the implementation pipeline is easy. CodeCommit has options for running pre-deployment tests, such as deploying on one server at a time, half of the servers or all at once. You can also directly update the source code of Lambda functions.
AWS CodeCommit may not be the best
git service to use as your primary source management, but it is certainly good to use to automate code implementations on EC2. or Lambda. With this configuration, you would use two remotes: when the code is ready to deploy, push the changes from your primary remote to CodeCommit.
Other Resource Management Tools: TFVC, Perforce and Subversion
While the other options on this list use
git under the hood, it's worth mentioning the alternatives to
Perforce is a centralized source control system.
git is distributed; everyone's local repository is only connected by remote control. This model has many limitations, especially with huge storage areas. You don't want every employee to have access to your full source code. Perforce manages these issues better than
Perforce (and other non-Git options) are also much better at handling large binary files, something that
git has a hard time with. Most hosted
git providers, including GitHub, limit file size to less than 100 MB, both to reduce storage costs and to discourage large files in the first place. An extension called Git Large File Storage solves the problem by storing large files on a separate server, but it is not a perfect solution.
Other non-Git source management options exist, such as Team Foundation Version Control (TFVC)), Subversion, and Mercurial. Most of these require you to host them yourself; BitBucket used to support Mercurial repositories, but they recently discontinued their use.
Host a Git server yourself
Another option is to host it yourself. All GitHub (or any other service on this list) is a web-based frontend for managing a
git server. That
git server is simply a remote control that serves as an official reference for local
git repositories. You can use your own
git server with the ready-to-use
git installation that most Linux distributions have and connect to it, instead of someone else using it you host.
You can read our guide to set this up for more information, or you can read our guide to setting up GitLab Community Edition, which allows you to host your own
git server while still running have a web interface
Although the lack of web access is a drawback, anyone can have a GUI git client or sufficient knowledge of the terminal, but it can be a good alternative. One thing to note is that if you host the server yourself, you are responsible for the data stored on it. You shouldn't really use a
git provider as a backup anyway, but if it's in your own cloud, you should take good care of the server.