If there's anything that's changed software in the past two decades, Git is at the top of the list.
If you don't use Git personally, you might think it's just a tech fad, an incidental darling among developers just because it was created by the same person who started the Linux project itself. There may be some truth to that, but Git does manage to achieve some feats that no other industry has managed. With Git, developers spread all over the world are able to work on the same code, literally at the same time, with a history of every change made, and then merge all the work together to result in a finished product. The complexity is enormous, and so the tool itself can get complex, but in the end, it's a major component in keeping the software industry running.
Whether you know Git or not, you'll very likely encounter it should you dig deep enough into open source software or enter into computer science. Whether you use Git to just download an installer package or whether you interface with it daily to manage code, learning more about it is elucidating and empowering.
Git terminology
As with any specialized tool, there's a lot of jargon in Git. Terms like "clone" and "merge" and "rebase" are mysterious at best, and at worst can feel almost exclusionary. Trying to understand what all of these terms mean can be overwhelming, but not if you take a little guidance from Matthew Broberg's excellent Git Terminology 101 article. In just one quick read, you'll be able to listen in on conversations about Git with real comprehension.
Getting started with Git
If you need to know how to use Git, then my own introductory article series about using Git is a great place to start. The articles are several years old now, but as with so many Linux and UNIX technologies, the interface hasn't changed significantly, so the articles are as relevant today as they were when I wrote them. The series introduces you to the most basic concepts of Git, and steps you through the process of creating a repository, committing files, restoring files, merging branches, and much more.
Common Git services
One of the most common uses of Git is a public Git hosting service, such as GitLab and GitHub. In his How to clone, modify, add, and delete files in Git article, Kedar Vijay Kulkarni demonstrates the everyday tasks most developers perform with Git. This isn't required reading for non-developers, but it's a must for anyone who wants to contribute to a project on a public Git hosting service. This article addresses Github specifically because it's one of the most common platforms today, but the principles apply to any web front-end for Git, including popular open source frameworks like GitLab, Gogs, and Gitea.
Try this Git walkthrough
Do you prefer a guided tour to aimless exploration? Sometimes the easiest way to learn something is to mimic someone else's exact steps. You know the end result is a guaranteed success, so you have confidence while performing the exercise, and your brain and fingers get the benefit of repetition, which builds memory. If that's your learning style, then follow along with Alan Formy-Duvall's practical learning exercise for Git and find out what a successful Git session feels like.
Git apps
Believe it or not, Git has more interfaces than text you type into a terminal. Obviously there are the web interfaces of Git hosts online, but you can use Git clients on your computer, too. For just a light layer of assistance, read Jesse Duffield's article about Lazygit or Olaf Anders' article about Tig. For the full graphical application experience, read my article about Git-cola, Sparkleshare, and still others. And yes, there are even interfaces for your mobile devices!
Learn more about Git
Knowledge is power, so don't let Git be a mystery to you. Whether you use it directly or you only know it by name or you'd never heard of it before, now's a great time to learn about Git. There are great resources out there to help you understand how it works, why it works, and why people love it so much. Dive in, take it at your own pace, and learn to love Git!
2 Comments