Table of Contents
Disclaimer
To understand this article, you must know the basics of Git (the versioning tool).
I'll describe an analogy that binds time traveling, multi-verses and parallel realities with Git.
Hang tight, it's fun!
Intro
I’ve been watching some Neil deGrasse Tyson videos recently, more specifically the StarTalk channel and I wanted to share an interesting thought that occurred to me while working with Git these days.
First of all, I think we developers take Git for granted. (Or maybe it’s just me)
Once you’ve worked with it for a while, it becomes automatic (like driving a car).
git clone -> git checkout -> git add -> git commit -> git push I don't usually think about what's happening under the hood.
So, this time I did and came to the conclusion that:
Git is fucking awesome
It has every superpower physicists dream of: time travel, “universe” jumps, merges, reverts and flat, accessible & mutable history.
Imagine if you could read all events of our reality ordered by time, accessible via a simple command.
Not only see it, but change it and fork it, how many times you want, think about it: it’s crazy!
As developers, we are pretty much used to (and bored by) these features.
We not only have multiple repos, branches, worktrees, checkouts, reverts, logs and reflogs, but also local and remote states.
We have merges and conflicts, with selective cherry-picking.
We are spoiled.
We handle multiple versions of code, with many contributors, many times a day, as an ordinary task.
That's just... part of the job.
We travel through time ALL THE TIME.

We are not "prisoners of the Present" in Git, we own the present, the past and decide & contribute to the future.
Ok, let’s twist some terms and play with this idea a little bit.
Analogy is my passion

When you think about a branch, imagine a universe.
Commits are “events” or facts, that shape reality.
Events happen at some time (through a created-at date-time column).
In this article, reality is a Git repository with a single file: rules.toml.
The first branch/universe I’ll create is “main”.
Rules in main are simple:
# rules.toml
gravity="9.8m/s^2"
walking-force=1
background-color="sky-blue"
stars-count=0 As expected, the first event of the main reality is "Hello, world!".

Recap
Repo -> reality
Branch -> universe
Commit -> event
History -> history
Checkout -> time traveling
Switch -> universe jumping
Revert/merge/rebase -> the history of a universe being re-written Forking Reality
Now, I'll spawn another universe called light, with different rules:
# rules.toml
# ... (previous lines unchanged)
stars-count=1 (the sun) 
The Game
Now that you have a rough idea of this slightly crazy project, I built a walking animation to demonstrate the idea.
Ok, not just a walking animation, a web mini-game.
Play with Git as a multiverse: switch branches, commit events, and rewrite history.
This Git multiverse mini-game is blocked on mobile. Open this post on a larger screen to play.
You can use git commands to play:
- git commit (updates rules for current universe)
- git switch (travels to another universe)
- git switch -c (create new universe)
- git checkout (travels back in time)
- git reset (erase history)
Each universe has a different set of rules and a different history too.
The character in the game is not only a time traveler, but also the architect of multiple universes.
You can play with him and change the rules, have fun!
Multiverse
This whole article was born out of the idea/theory/hypothesis/suggestion that we may live in a multiverse.
I like to think that each event in your life has a probability to happen. You have some kind of liberty (not much) to interfere with these probabilities.
Like studying for a test will increase the probability of you doing better at that test.
In this idea of multiverses, what I like to think (and not really believe, just wonder about) is the following:
Whenever you make a decision, you create a new universe (or branch).
In your main branch you’re living your life, and you have a history of past decisions (commits).
When you decide to study for a test, the universe spawns a new branch where you decided not to study for the test.
And this goes on for each and every decision you make (and other beings make).
In this scenario, our reality is an infinite pool of universes, each one with a different set of decisions and, therefore, history and rules.
We don’t know what originated our universe, our best guess is the Big Bang, but we don’t know what sparkled the Big Bang (and some would argue that the question doesn’t make sense, as time itself was originated at the Big Bang).
The thing is, in our reality, there’s no way to access another branch.
Whenever an event happens or a decision is made, usually there’s no going back.
Time flows forward, as the 4th dimension (thanks Einstein), and never backwards.
This is not true for Git.
Git humiliates our reality.
Git is awesome.
Thanks for reading, good night!
PS: This text was 100% written by a human being, and grammar-corrected by an LLM
References
Books
A Universe from Nothing
The Universe in a Nutshell
Astrophysics for People in a Hurry
The God Equation
Videos
Imagining the Tenth Dimension - 2012 Version
