GitHub has become the industry standard for good reasons.
September 01, 2017

GitHub has become the industry standard for good reasons.

Anand Chhatpar | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User

Overall Satisfaction with GitHub

Github is our primary repository for all the code in the company. All developers push their code to our github repo first and then issue pull requests to merge the code into a master branch that is then deployed to our production servers. The main problems github solves for us are: (1) speeding up code reviews, (2) Helping merge production-ready code from different developers, (3) track a version history so we can always go back and check what the production server code looked like at any point in history. Frankly, for a software focused company with multiple developers, github is extremely central to all operations and I cannot imagine any modern organization operating without it. Managing our own repo outside of github is a tremendously painful and expensive operation -- especially the part about keeping the stack up to date to ensure it is secure at all levels.
  • Code reviews are easy to do with github. Developers can comment on each others' code and approve or reject changes in a pull request. They can also request specific improvements to the code before it is merged,
  • Github helps merge production-ready code from different developers. They provide automated merging based on git and you can also do many operations that would normally need the command line directly from their web-based UI.
  • Tracking and searching through the version history of the code is 10x faster and easier with github compared to other git servers/clients.
  • Adding collaborators to the organization and managing access credentials for incoming and outgoing employees is particularly easy with Github.
  • Their built-in continuous integration tool lacks the sophistication and configurability of a mature tool like CircleCI.
  • They don't provide easy ways to deploy specific branches to specific servers. You have to connect your own deployment system (like capistrano or heroku's pipeline) manually to your github repo.
  • Speed for collaboration between developers has a tremendous positive impact.
  • Github's profile provides a chart that shows you the code contribution level from different developers and it has become the de-facto way of showing someone in a job interview how deeply involved in coding you currently are. This feature of Github saves a lot of time during the interview process for us.
  • Github provides free hosting for open source projects and that is a huge win for the community, in addition to providing a positive lift to companies like ours.
Github and git, in general, is much better than SVN or Subversion for version tracking and code collaboration. It takes the best parts of SVN and fixes a lot of what was broken with it. Github's own UI has evolved really well over time and they have taken developer productivity very seriously.

Comparing the continuous testing and integration testing component of github, I'd say CircleCI still has an edge over Github right now since it can be easily integrated with your repositories and run in the background as soon as you push a code branch to github. Having said that, Github's CI tool is fairly new, so it will likely catch up to Circle CI and I fully expect that it will become the default way most programmers test their code in the future.

Github is an easy choice for a CTO to make. It is the industry standard and has great reviews on all fronts. There is really no need to re-invent the wheel by trying to roll your own code repository system.
Github is really useful for companies with multiple developers that have to collaborate on the same code base. Whenever you introduce coupling or overlaps among the tasks of developers, you will need a Git repo and there's currently (as of mid-2017), no better system for managing your repositories in the cloud.

I'd say Github is less appropriate if you have just 1 or 2 developers, although if you expect the team to grow in the future, it would still be wise to use github from the start.