The common misconception about GitHub

/ Jack Lot


Git is an open source version control system whereas GitHub is a for-profit company that hosts Git repositories.

What Git itself does really well

Speed. If software projects are just folders full of code files, version control systems are just sophisticated databases performing file management operations. With Git most of those operations are near instantaneous.

Distributed architecture is another Git strength. Unlike centralized version control systems that keep the version control database on a central server that every collaborator must connect to; Git gives each collaborator a copy of the database, and defines protocols for syncing changes back and forth.

Where GitHub comes in

Distributed version control means every engineer has their own copy of Git’s database. With a lot of collaborators, that means every change has to be imported by everyone else. Contacting each collaborator one-by-one to check for new work doesn’t scale well.

So instead of syncing directly with each other, one solution is to host a single copy of the database in a central location and have everyone sync with that. This isn’t centralized version control where a live connection to a central server is necessary, this copy is only used as a distribution point for collaborator changes. GitHub is a popular place to put it.

You don’t need GitHub!

Branching, commit history, cloning, release tags and synchronization features (clone, fetch, push, pull) are native to Git! You can spin up your own server, put a Git repository on it, and get the same benefits. GitHub, GitLab, AWS Code Commit, etc are just shells onto of core Git features.


TAGS: videos, git