Originally published on lavkesh.com

When Linus Torvalds wrote Git in 2005 he wasn’t chasing a buzzword; he needed a system that could handle thousands of kernel contributors pushing changes every day.

Git gives each developer a full copy of the repository, history and all. That means you can commit, browse logs or create a branch without ever touching a central server.

Branching in Git is cheap enough that creating or deleting a branch takes milliseconds. Teams can spin up isolated workspaces for features or bugs, merge them back, and repeat the process dozens of times a day.

For example, at my previous company, we used Git to manage a large monorepo with over 10 million lines of code. We had over 50 developers working on the project, and they would create and merge branches multiple times a day. We used tools like GitFlow to manage the workflow, and it worked remarkably well. The key was to keep the branch lifetime short, usually less than a day, to avoid merge conflicts.