Learning Git: Basics and Internals

In this post, I am sharing learning resources that I used for getting started with git, and learning more about git internals.

These resources are organized under the basics and Internals sections.

Basics section is for folks who are getting started with git and learn how to use, and why they should use git.

Internals section is for folks who have used git and want to learn how git works, it’s advance usage, architecture, and internals of git.

Each section contains links to blog posts, videos, books, and documentation. There is an overlap between resources, so pick what you like, and learn from a resource that fits your learning style πŸ™Œ

Since we are talking about git, it would a crime not to share xkcd on git. Legend has it that is there is a relevant XKCD for almost everything

Git XKCD

Git Basics

Follow this section if you are new to git, and just getting started.

What is git?

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

– Git Homepage

To put it in simple words, It’s a tool that’s used in software development to keep track of the history of changes, tho it’s mainly used for text files but it works for most file types.

This allows software developers to collaboratively work on projects, and allows them to time travel(history of changes) and see what, when, and who changed something.

What is GitHub/GitLab/Bitbucket, and how they are different from git? They are online hosting services for git, with other tools that allow software developers to collaborate on software projects.

Getting Started

If you are looking for a quick getting started guide then gitimmersion.com has a great guided tour of git.

If you have a short attention span like me and like to learn from video, watch this highly compressed Git Explained in 100 Seconds video

If you are looking to learn how to use GitHub, then follow Introduction To GitHub lab from folks at GitHub

There is another set of tutorials from Atlassian (makers of Bitbucket) on What is version control, and another git topics

If you prefer classroom-style lecture with a bit more then basic commands then see this Lecture on Version Control (git) from Missing Semester course by MIT

Git Internals

This section contains resources on how git works

Git from the inside out by Mary Rose Cook. If you like to learn from videos then here is same content in video form

If you want to learn about System Design, History, and Architecture, then checkout this chapter on Git in The Architecture of Open Source Applications Book.

Sidenote: The Architecture of Open Source Applications is a great read and gives us a peek inside (well you guessed it) Architecture of Open Source Applications

Git Internals by John Britton of GitHub - CS50 Tech Talk is a great watch if you want a demo/walk-through style guided tour of Git

GOTO 2015 β€’ Deep Dive into Git β€’ Edward Thomson is another great talk that dives deep into git.

If you are looking for a book on git internals then check out Pro Git book

Other than these resources, the official git website also maintains a list of resources on git. check out that if you are still looking for more resources 🧐

Closing Note

I hope these resources were helpful and will help you learn more about git.

If there is something that you think should be included here, tweet me @electron0zero and let me know πŸ™‚

Happy Learning πŸ‘‹


Continue Reading