1. Introduction

gitrust

Git is the most popular version control tool in use today. It’s the underlying tool powering the code-hosting site Github, as well as other sites like Bitbucket (which I worked on during my time at Atlassian).

I’ve decided to try and re-write git in rust, to learn more about the internals of git, and also to practice writing rust. I’m going to call the binary I produce grit. I’ll be using Claude Code to assist in the implementation.

The goal of the project is for grit to be compatible with git, and vice versa, so grit can perform commands on a regular git repo, and git can run commands on a repo created by grit.

I only plan to implement a subset of the features of git. Some of the topics I’d like to dive into include how different objects like commits are represented on disk, how the index works, how to perform common operations like merges, the git networking protocol, and how git interacts with the filesystem.

I’ll be working incrementally on the project in this repo.