Whether you’re a programmer, a data scientist or a web developer, you know that one of the essential skills you need to fine-tune is version control and Git in particular. Git is an example of a DVCS (distributed version control system). In a distributed version control system, the history of your software isn’t stored on a single device; rather, it is distributed across different machines and different users. For example, when a team uses Git, everyone works on a copy of the code that contains a history of all changes that occurred on that code since its original creation.
Git’s developers designed it to excel where other version control systems fall short: performance, security and flexibility.
If you are like me, then you’ve attempted (and struggled) to learn Git.. Of course, not everyone struggles with learning Git, but many do. So, when I wanted to build a solid Git foundation, I combed through hundreds of resources to find ones that make understanding the inner mechanics of Git simple and straightforward. Here’s what I found.
How to Learn Git — 5 Tools You Need
- Think Like (a) Git
- GitHub Docs
- Git Tower
- A Visual Git Reference
- Learn Git Branching
1. Think Like (a) Git
Let’s start out with one of my favorite websites to learn Git, Think Like (a) Git. My favorite part about this website is their slogan: “Git shouldn’t be so hard to learn.” I couldn’t agree more. Git is a skill every programmer needs to learn!
Git is built based on different concepts of graph theory, which is a mathematical field addressing graphs. Think Like (a) Git dedicates an entire detailed lesson to discussing graph theory, nodes and edges so that Git makes more sense later on. After discussing graph theory, the website explains the basics of Git and provides examples for each concept.
2. GitHub Docs
One of the great resources to learn Git is the GitHub docs. The GitHub team goes through a lot of trouble to make learning GitHub manageable for everyone. If you want to learn GitHub from the source, it doesn't get better than GitHub docs.
GitHub docs address every question you may have about Git and GitHub usage, from installing it locally to creating a repository, to creating branches, merging them, pulling requests and syncing codebase — both locally and on the GitHub server. The GitHub docs provide screenshots throughout so you can follow along that way if you’re a visual learner.
3. Git Tower
If you’re a beginner to Git and programming but prefer the structure of a textbook, check out Git Tower, a free e-book directed toward Git beginners. The book follows a simple, straightforward approach to teach you the basics of Git and version control.
Git Tower starts from the absolute beginning: What’s version control and why do we need to start with it? The book then goes deeper into what Git actually is, from the basics to more advanced related topics. Git Tower provides tutorials, videos and cheat sheets to help you become a professional Git user.
4. A Visual Git Reference
So far, we’ve looked at resources that discuss and explain Git and version control in great detail but what if you need to use GitHub now? You want something simple and to the point that you can digest within minutes. The Visual Git Reference is for you.
Visual Git Reference is a one-page website that explains the basic concepts of Git. It addresses the most common usage of Git, such as committing, checking out, merging, getting the difference between versions and rebasing in a simple way that allows you to use Git right away.
5. Learn Git Branching
As we mentioned earlier, Git and GitHub are based on graph theory, which is the study of visual mathematical representation. One of the basic working mechanics of GitHub is branching as well as creating, merging and handling those branches. Learning Git Branching is a great visual, interactive resource to learn and practice Git branching.
This resource is probably the one that my students and I benefit from the most. The way it teaches branching and deals with the subject visually makes the concept easy to grasp. In addition, the website levels scaffold in a logical way that’s easy to follow for absolute beginners and experts alike.
Version control is one of the more challenging concepts to learn for anyone entering tech. As a computer science instructor, Git is where most of my students struggle and get overwhelmed. To make things easier for my students (and myself) I looked for different resources to explain Git in various methods: pure text resources, visual resources and interactive ones, too.
So, if you’re new to tech or still feel a tad shaky about your Git knowledge, give some of these resources a try; maybe one of them will help you better understand Git and version control.