DEV Community

Cover image for Understanding How Git Internals Work?: PART-1
Ganesh Kumar
Ganesh Kumar

Posted on

Understanding How Git Internals Work?: PART-1

Hello, I'm Ganesh. I'm working on FreeDevTools online, currently building a single platform for all development tools, cheat codes, and TL; DRs — a free, open-source hub where developers can quickly find and use tools without the hassle of searching the internet.

Do you know how to use git?

This might be the most common question asked when you join any software company, because the same question was also asked of me.
To learn basic Git, my Senior Engineer taught me how git works and how to use git commands like git commit, git push, git checkout, and a few more commands.

Furthermore, working with a few projects, I started using lazygit.

With my understanding, I have made a series on How Git Uses a DAG to Track Your Code History.

This is also a basic level of understanding of how to use git.

By exploring and sharing thoughts on git. I realised, why not try to understand how Git internally works?

In this series, I will explore how git works internally and share my understanding in the series.

What is Git Actually?

On seeing the official doc, I got this.
image

The official definition of Git is a fast, scalable, distributed revision control system with a vibrant command set that provides both high-level operations and full access to internals*.

Basically, it is a database that stores internally, a commit point to a tree object, which in turn points to blob objects (the actual file contents). Git uses content-addressable storage, so unchanged files are not duplicated—they are simply referenced again.

Continuation

In the next blog I am going to explain how Git was initialized with an example.


FreeDevTools

I’ve been building for FreeDevTools.

A collection of UI/UX-focused tools crafted to simplify workflows, save time, and reduce friction when searching for tools and materials.

Any feedback or contributions are welcome!

It’s online, open-source, and ready for anyone to use.

👉 Check it out: FreeDevTools

⭐ Star it on GitHub: freedevtools

Top comments (0)