Git
Oh you’ve definitely heard of Git, but if you’re starting out in the platform engineering world it might seem strange and scary. Don’t be scared, just carve out some time to learn it (you’ll need less time than you think).
What Is Git?
Git is a version control system (AKA, source control system). This is generally used by developers to maintain different versions of code so that they can go back to previous versions of their code easily without messing up what they are working on now. Application code can get complex and mistakes can be made. Version control lets developers retrieve a previous version of code to see what they worked on before or to completely rebuild an application from a known point in time when the application was working correctly (usually after a huge, money-sucking bug is found in an application).
Git is the most widely used version control system because it’s lightweight and works really well when you have multiple developers working on the same codebase.
But Do I Need to Learn Git?
Yes, you do. And furthermore, you should learn how to use it reasonably well. Luckily, it’s not as hard to become proficient as you’d think. I do think it is hard to become an expert, but I’ve found that it’s rare that you need to have expert-level Git knowledge. This is particularly true if you’re working on a small team. And if you’re working on a big team, there’s always that one lunatic that knows Git like the way I know 90s era “The Simpsons” episodes, which is embarrassingly well. If you don’t have that person on your team, there’s still a way to recover your work using hacky, inelegant approaches when you get really stuck.
If your organization isn’t using Git, then the answer is “no, you don’t need to learn Git.” But if your organization is not using Git, there better be a good reason. Most of the time the answer to technical questions is a mooshy “it depends” or “there’s no right or wrong,” but in the case of Git, the answer is almost always “yes, use Git.”
But Why Do I Need to Learn Git?
If you’re a serious platform engineer, you’re going to be writing infrastructure as code, which is a way to define your infrastructure as text files. Your infrastructure is going to change over time, and just like developers who write application code, you’re going to make mistakes and need to revert back to a previous version. Or maybe you did some cool thing that you no longer need, so you got rid of that cool thing, but now you want to bring that cool thing back. You’ll be storing these infrastructure as code files in a Git repository, so you need to learn it.
Is Git the Same as GitHub?
Glad you asked! It’s confusing isn’t it? GitHub is a cloud-based version control service. As you can guess, it uses Git as the version control system. An analogy would be how email is delivered between email servers using SMTP, and then Gmail decided to call themselves SMTPHub. Git is the technology, GitHub is just one service that uses that technology. Other big Git-based cloud version control services are BitBucket, GitLab, and Azure DevOps.
Git to It!
When you’re writing a Git introduction, you’re legally required to include a “get”/”git” pun.
So I know that so far none of the above has really helped you understand Git that well, so I suggest you jump into the Git tutorial. When you begin using it in real life, start out by making very small changes so you feel less anxious when your sweaty fingers click that Merge button for the first time. Making small changes is an Agile principle, so it’s a good practice anyway.
Comments