GitHub is an open source, cloud-based repository hosting service that allows developers to store, manage, track, and control changes to their code. Source code projects are hosted in a variety of programming languages, and changes made to every iteration are tracked. GitHub users can review each other’s code and propose changes. It has been a subsidiary of Microsoft since 2018.
How GitHub works
Two connected principles are at the core of GitHub: Version control and Git. As a software project grows, version control is critical. It allows developers to tweak the software, such as fixing bugs and improving efficiency without affecting the software itself or risking user experience. After proposed changes are reviewed and approved, they can be merged into the live software without much fuss.
Git is what powers the version control and collaboration. Git is a distributed version control system, meaning the entire codebase and history is available on every developer’s computer. This makes for easy branching, which is the duplication of code for manipulation without affecting the rest of the project, and merging, incorporating the manipulated code back into the main project. While Git can be used outside of GitHub, GitHub provides an interface that makes using Git easier.
Here’s an example of the process: A developer forks a project, meaning they create a copy of someone else’s project that allows them to experiment freely without affecting the original work. Once the developer is happy with the changes, they can submit a pull request, which tells the owner about the changes they made. The owner reviews the changes and asks any follow-up questions. If they like the changes, they’ll merge the pull request, applying the changes from the forked project to the original code.
Github offers its basic services free of charge. The free plan allows unlimited collaborators and public/private repositories. There is a limit on actions minutes per month. Paid Team and Enterprise plans are offered that allow for more actions minutes and storage.