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 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 π