COMPUTERS · VERSION CONTROL
GIT TIME MACHINE
Every commit a star, every branch a lane. Commit, branch, merge, fight a conflict, rebase — or drag time backwards and stand on an old commit.
~/lighthouse — a small repo with some history. Try the buttons, or type git help.
what am I looking at
A real, small model of what git stores. Commits point at their parents, so history is a graph, not a list; branches are just names pointing at a commit; HEAD is where you are standing. Merges are real three-way merges against the common ancestor, line by line, and the conflict is what git does when the same line changed two ways. A rebase replays the same changes on a new parent, which is why the commits come out with new ids — the old ones fade out behind them. The ids are SHA-1s of each commit's content and parents, like git's, but not of git's exact byte format. The layout is the same rows and columns as the git log --graph printed beside it. The project, lighthouse, is invented. Drag to turn it, pinch or scroll to zoom, double-tap to reset, tap a commit to open it.