All our source code is hosted in private GitHub repos. All code reviews also go through GitHub and our deployment process goes through GitHub as well, pushing to the master branch triggers a GitHub webhook that deploys the code to production.
Pros
Excellent integration with CI/CD tools: testing and deployment are easy via GitHub's ecosystem.
Great code review tools.
Easy to link to and share specific lines of code to communicate with engineers.
Cons
Notifications are noisy by default and hard to configure to do what you want.
No cross-repo issue tracking, hard to see all open pull requests at once.
We pay per seat, which means sometimes we introduce extra friction because we can't give everyone access to our GitHub.
Likelihood to Recommend
GitHub is my de facto choice for hosting code. It comes with excellent code review tools, issue tracking, project management, and security issue tracking out of the box, and makes adding testing and deployment easy. GitHub is also one of the best project management tools out there. At previous companies, we would create empty GitHub repos just to let other teams use GitHub issues for tracking goals.
GitHub became 2 to 3 years ago the new standard developer repository. Like most companies, we came from CVS/SVN world which used to fit our needs but with some gaps. Thanks to the distributed architecture of Git, developers can now manage their own repositories and merge their modifications with master or dedicated branches. With modern tools and modern approach (CI/CD) GitHub is the perfect solution for multi developers teams. The process of pull request is now standard in our organization and enables better code quality with additional review step.
Pros
GitHub is capable of integrating with modern devops approach (ci/cd) and most of the tools in such flows (jenkins or bamboo).
GitHUb is capable of generating notifications for specific cases (i.e. webhooks) that allow triggering builds or deployments.
GitHub is following the modern way of sharing content in public or private spaces. We can find the same ideas with dockerhub, vagrantcloud, etc...
Cons
Until now, we didn't face any limitations in our current job. The only evolution we foresee is an evolution of the command line cli which should be easier to use
An additional evolution would be around the documentation of repositories (i.e. README.md files) that should be more documented for nicer presentations.
Likelihood to Recommend
GitHub is becoming a standard for source control management. This job is well executed. A developer team can be small or large, each developer manages their own version of source code. The pull request allows to merge branches after manual code review.
GitHub is not appropriate for document versioning (i.e. Word, PDF, etc...) as we are not able to merge these kinds of documents. It's preferable to use alternative solutions (Alfresco, SharePoint, etc...)
GitHub is used for version control by our entire organization. We use it for our Web, iOS, and Android applications at this time. It is used primarily for the engineering team but is also a central location for creating documentation on each Wiki to help give our business team a good understanding of processes.
Pros
Pull requests (for code reviews)
Historical timeline of code improvements
The ability to add commit messages to help define to your team member what you worked on
Cons
Educating users on the git language best practices (help avoid irreversible mistakes from Stack Overflow solutions)
In-app real-time chat/communication to allow for co-code reviews/pairing
Search functionality sitewide
Likelihood to Recommend
GitHub is best used as THE version control system. It specializes in open source software while promotes and advocates for the ability for collaboration across teams. Where GitHub is failing is when there is a limitation of file size for a repository and Git Large File Storage is not yet at a place to seamlessly integrate into any project.
VU
Verified User
Engineer in Engineering (Transportation/Trucking/Railroad company, 1-10 employees)