What Problem Does Git Solve?
timeline
1991 : Linux is local : Linus approves all changes
2002 : BitKeeper (closed-source): Scale wokflow with sub-groups storing changes
2005 : Git (open-source): Solve licensing dispute and store snapshots
2008 : GitHub Website Launch : Git is easy and social
One of the books on my winter reading list was Linus Torvald’s “Just for Fun,” where he recounts the origins of the programs he’s most famous for authorin — the Linux operating system kernel and Git, an open-source distributed version control system.
Linux started as a personal project on Linus’ computer. Basically form teh start, he shared the project on public forums where it eventually grew into a community supported program. In the early days, Linus would manually approve all contributions. This was okay for developers who were willing to wait for a slow difference engine to identify changes between releases and send him an email with their recommended code.
When the Linux commmunity grew into the thousands, they compromised to use a propriety distributed version control system called BitKeeper to help manage code changes. Great! Linus didn’t have to approve everything by himself. And, specialized sub groups could develop independently. Unfortunately, their closed-source DVCS meant they couldn’t modify the system to meet their needs. Not ideal for an open-source project founded on build-it-yourself mentality.
Just a few years later, they decided to solve their licensing issuse by developing their own, new and improved DVCS which:
- Stores snapshots of file paths and contents, in addition to differences.
- Exists on your local machine
- Has the ability to connect to remote serves for distributed system development
Think of it like Google docs for programmers.
Git vs. GitHub
Git is local.
Developer platforms, like GitHub, GitLab, and BitBucket offer a social environment to collaborate with anyone in the world. They host remote servers that allow you to store tracked files on their platform. Features are layered on top of git, including:
- Pull requests and code review
- Project Management boards and discussions
- CI/CD with tools, like GitHub Actions.
And other interesting offers, like web hosting, online IDEs, and AI tools.
Stay tuned for Part II: Git Fundamentals and happy coding!
