Github started back in 2008 developed in Ruby on Rails. Github provides hosting for software development and version control using Git. It offers the distributed version control and source code management (SCM) functionality of Git, plus its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, continuous integration and wikis for every project.
GitHub offers unlimited private repositories to all plans, including free accounts. Starting from April 15, 2020, the free plan allows unlimited collaborators, but restricts private repositories to 2,000 actions minutes per month.
Since 2012 Microsoft became a prominent/significant user of the Github service using it to host open-source projects and development tools such as .NET Core, Chakra Core, MSBuild, PowerShell, PowerToys, Visual Studio Code, Windows Calculator, Windows Terminal
Microsoft ended up buying Github in 2018 which know operates as a subsidiary of Microsoft.
Github & Microsoft made it to the news recently on October 23 2020, The RIAA issued a DMCA takedown notice to GitHub to takedown Youtube-dl and its forks.
And here We are in the present Me talking about Github alternatives today but why is it such a problem You might ask?
Well if just the very fact that it is owned and operated by Microsoft was not enough for You then this recent event of takedown of Youtube-dl and its forks which is essentially a command line tool to be able to download youtube videos.
RIAA was claiming it is tool to be used to illegally make downloads/copy of copyrighted music videos hosted on Youtube amongst other reasoning for their claim.
These kind of reasoning is the same when people blame firearms for crimes commited by mentally instable individuals using any kind of firearm.
The fault as always lies with the individual and the use case he/she is applying with a tool for example like Youtube-dl or a firearm. You can use it just like anything else in this world to do bad or to do good.
Sure You can use it do download/copy material off from Youtube You are not supposed to or have no right to do so but many people including myself uses it to do a backup/archive of my own Youtube videos I host on this podcast’s Youtube channel using the command line which is quick , easy and efficient.
Just like a firearm Youtube-dl can be used for Good or Bad but following this logic and argument We shall ban all wheeled motor vehicle cause there are people who use them to make car bombs or grab a purse of someone on the street using/sitting on a motorbike/scooter and get away quick.
Of course this event rubbed many people the bad way including myself and it made me look more into alternatives to Github platform even tough I was never an avid user of github or other development and version controling system.
Many people voiced that perhaps RIAA and Microsoft deserves each other but perhaps We deserve something better than Them. I can not agree more.
Git Vs Github vs SVN
Git is a distributed version-control system for tracking changes in source code during software development.It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows
Git was created by Linus Torvalds in 2005 for development of the Linux kernel, with other kernel developers contributing to its initial development after many developers of the Linux kernel gave up access to BitKeeper, a proprietary source-control management (SCM) system that they had been using to maintain the project since 2002.
As with most other distributed version-control systems, and unlike most client–server systems, every Git directory on every computer is a full-fledged repository with complete history and full version-tracking abilities, independent of network access or a central server.
Github is a cloud service allowing to manage/handle git repositories online with additional features as I commented in the beginning of this episode
Apache Subversion which is often abbreviated SVN, after its command name svn) is a software versioning and revision control system distributed as open source under the Apache License.Software developers use Subversion to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly compatible successor to the widely used Concurrent Versions System (CVS).
While Git and SVN are both enterprise version control systems (VCS) that help with workflow and project management in coding, they do have their differences. The difference between Git and SVN version control systems is that Git is a distributed version control system, whereas SVN is a centralized version control system.
In Subversion or SVN, you are checking out a single version of the repository. With SVN, your data is stored on a central server.
This means that Subversion allows you to store a record of the changes made to a project, but that history is stored on a central server.
Unlike Git, which is distributed, you need to have constant access to an SVN repository to push changes. These changes are saved as the developer implements them.
In addition, instead of having a copy of a project’s history on your local machine, you only have a copy of the code itself. In other words, to see how a project has evolved, you need to reference the central version of the codebase.
Alternatives to Github
GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and continuous integration and deployment pipeline features, using an open-source license, developed by GitLab Inc. The software was created by Ukrainian developers Dmitriy Zaporozhets and Valery Sizov
The product was originally named GitLab and was fully free and open-source software distributed under the MIT License.
In July 2013 the product was split into two distinct versions: GitLab CE: Community Edition and GitLab EE: Enterprise Edition. At that time, the license of both remained the same, being both free and open-source software distributed under the MIT License.
In January 2017, a database administrator accidentally deleted the production database in the aftermath of a cyber attack. Six hours’ worth of issue and merge request data was lost.The recovery process was live-streamed on YouTube.
GitLab runs GitLab.com on a freemium and offers a subscription service.
It has various plans including a free tier.
It also has option to self host Gitlab for Yourself
Bitbucket is a web-based version control repository hosting service owned by Atlassian, for source code and development projects that use either Mercurial (from launch until 1 July 2020) or Git (since October 2011) revision control systems. Bitbucket offers both commercial plans and free accounts. It offers free accounts with an unlimited number of private repositories (which can have up to five users in the case of free accounts) as of September 2010.
opensource projects can request community license above 5 members to remain free
It integrates with other Atlassian products such as Jira
SourceForge is a web-based service that offers software developers a centralized online location to control and manage free and open-source software projects. It provides a source code repository, bug tracking, mirroring of downloads for load balancing, a wiki for documentation, developer and user mailing lists, user-support forums, user-written reviews and ratings, a news bulletin, micro-blog for publishing project updates, and other features.
SourceForge was one of the first to offer this service free of charge to open-source projects.Since 2012, the website has run on Apache Allura software. SourceForge offers free access to hosting and tools for developers of free and open-source software.
As of September 2020, the SourceForge repository claimed to host more than 502,000 projects and had more than 3.7 million registered users.
Launchpad is a web application and website that allows users to develop and maintain software, particularly open-source software. It is developed and maintained by Canonical Ltd.
It has several parts:
- Answers: a community support site and knowledge base.
- Blueprints: a system for tracking new features.
- Bugs: a bug tracker that allows bugs to be tracked in multiple contexts (e.g. in an Ubuntu package, as an upstream, or in remote bug trackers).
- Code: source code hosting, with support for the Bazaar and Git version control systems.
- Translations: a site for localizing applications into different human languages.
Launchpad has good support for Git. You can host or import Git repositories on Launchpad. And this is entirely free.
Google Cloud Source Repositories
You can get free unlimited private repositories to organize your code in a way that works best for you. Can Mirror code from GitHub or Bitbucket repositories to get powerful code search, code browsing, and diagnostics capabilities.
It integrates with other services from Google. For example Deploy changes directly from branches or tags in your repository to App Engine
(( Google App Engine is a Platform as a Service and cloud computing platform for developing and hosting web applications in Google-managed data centers. Applications are sandboxed and run across multiple servers. ))
You can automatically build and test your source code using Cloud Build service to automatically build and test an image when changes are pushed to Cloud Source Repositories.
It has a free tier up to 5 users with a total of 50 GB of storage with 50 GB egress traffic limit per month
AWS CodeCommit is a version control service hosted by Amazon Web Services that you can use to privately store and manage assets (such as documents, source code, and binary files) in the cloud.
AWS CodeCommit is a similar alternative to Google Cloud Source Repositories.
Just like the Google Cloud Platform, AWS also provides a free tier that does not end when the trial ends. So, it’s free forever if your usage is within the free tier limits as mentioned in their official documentation.
You can have 5 users and 50 GB of storage for free to start with. If you want to add more users, you can do it for $1 per extra user for the resources you already have.
is an all-in-one tool that lets you host code and discuss/plan to keep working on a project without needing to utilize separate applications for communication/collaboration.
You can audit source codes, manage tasks, manage a workboard, note things down, and do a lot of things.
Phabricator lets you self-host or opt for the paid hosting solution offered.
My favourite and the one I am personally self hosting for myself.
Gog is a completely self-hosted solution to host your code.
Also, it is a very lightweight option that can also run on a Raspberry Pi.
You can also run it on a low powered cheap 5$ VPS from Linode or Digital Ocean for example or Contabo for those German Data Center Lovers 🙂 I have a dedicated server in a German Datacenter so I know what I am talking about.. 🙂
It is very easy to have it up and running in a matter or 5-10 minutes.
Gitea is an open-source forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, wikis and code review. It supports self-hosting but also provides a free public first-party instance hosted on DiDi’s cloud. It is a fork of Gogs and is written in Go. Gitea can be hosted on all platforms supported by Go including Linux, macOS, and Windows. The project is funded on Open Collective.
Apache Allura is an open-source forge software for managing source code repositories, bug reports, discussions, wiki pages, blogs and more for any number of individual projects. Allura graduated from incubation with the Apache Software Foundation in March 2013.
Allura can manage any number of projects, including groups of projects known as Neighborhoods, as well as sub-projects under individual projects. Allura also has a modular design to support tools attached to neighborhoods or individual projects. Allura comes packaged with many tools, and additional external and third-party tools can be installed. There are tools to manage version control for source code repositories, ticket tracking, discussions, wiki pages, blogs and more.
Allura can also export project data, as well as import data from a variety of sources, such as Trac, Google Code, GitHub, and, of course, Allura itself.