Skip to content

Git Fundamentals

The pragmatic guide that teaches what actually matters and helps you to finally use Git with confidence and intention.

What are the "fundamentals" of Git?

In the context of this guide, we consider the fundamentals to be the things you need to know to handle the vast majority of situations effectively and confidently. In other words, if you have the fundamentals down, you know what you're doing and are aware of the consequences of your actions.

The fundamentals are different from the "basics" or the "bare minimum to get started" with a tool. They are the underlying concepts, mental models, and the "why" behind your actions with the tool, especially in collaboration with others.

Many of the concepts, practices, and habits are not Git-specific and apply in the same or a similar fashion to other version control tools. We focus on Git since it's currently the most popular choice among the alternatives.

Who should read this guide?

This guide is intended as "the guide you wish you had when you started out". It's mainly for the following kinds of software developers:

  1. You're in the beginning of your career or new to Git and want to learn it "right" from the start. Learning it "right" includes actually understanding what you're doing, building good habits, and awareness of common pitfalls to avoid.
  2. You're an experienced developer, but never really actually understood Git. You can use it reliably for the basic operations (commit, push, pull) to collaborate with others ‒ as long as nothing goes wrong ‒ and you may even be an expert in some areas of software development, but you feel like you never really understood Git. You struggle with complicated branching models, merge conflicts, and difficult releases. Maybe you progressed quickly in the beginning of your career due to talent or motivation and skipped some basics or you learned from seniors who then were in the situation you are in now.
  3. You're a senior developer or tech lead and want a guide that shows you what you might already be doing subconsiously, to help you help others. Experts do many things subconsciously (many good habits, but probably also some bad habits), which can make it difficult to teach others. It seems "obvious" to you, but you can't really explain it? Then this guide gives you awareness and a vocabulary.

Git

How many of us learn Git.
Image by XKCD, licensed under Creative Commons "CC BY-NC 2.5"