Inside Git’s Evolution: How Jun‑ichiro “J. B.” Hamano Took Over Maintenance
An in‑depth interview with Jun‑ichiro Hamano reveals how he joined the Git project, the challenges of early merge implementations, the relationship between Git and GitHub, and the personal qualities Linus Torvalds values in top programmers.
Recently Google released Git protocol 2.0, prompting curiosity about why Google now oversees Git maintenance; the current maintainer, Jun‑ichiro Hamano, is a Google engineer. This interview explores how Hamano became the primary Git maintainer and his experiences.
How Hamano Joined Git
In April 2005, BitKeeper’s license issues forced the Linux kernel to seek a new version‑control system. Linus Torvalds announced a provisional system he was writing, which Hamano discovered while between projects. He downloaded the 1,244‑line C code, read it in a few hours, and was impressed by its elegance.
Motivated by the small codebase and the opportunity to improve a tool essential for kernel development, Hamano contributed the initial commit and diff functionality. The merge feature was still missing, and Linus had repeatedly asked for a script‑based merge implementation.
Hamano wrote a Perl version of Linus’s proposed merge algorithm, submitted extensive tests, but Linus later replaced it with a different solution, illustrating the rapid evolution of Git’s core algorithms.
The "Columbus Egg" Merge Idea
Hamano explains that early Git considered using a temporary work‑tree for merges, similar to BitKeeper. Instead, Git introduced the index with staged snapshots (stage1, stage2, stage3) to represent the three versions in a three‑way merge, eliminating the need for a temporary directory. This approach streamlined conflict resolution and made merges more efficient, especially for large projects like the Linux kernel.
Git vs. GitHub
GitHub was founded by developers outside the core Git community, largely from the Ruby ecosystem. Initially, GitHub operated on an invitation‑only basis and did not receive many invitations for core Git contributors. This created tension, as some felt GitHub was commercializing Git.
Over time, both communities have collaborated, exemplified by the GitTogether event hosted by Google, where Git and GitHub representatives discussed future directions, improving relations.
Qualities of Outstanding Programmers
According to Linus, top programmers possess three traits: relentless perseverance on a task, strong intuition and aesthetic sense for problem‑solving, and excellent communication skills that convey goals and reasoning clearly to others. Hamano emphasizes that even possessing one or two of these traits can make a developer highly valuable.
Advice for Veteran Developers
Hamano advises programmers over 40 to maintain a genuine enjoyment of coding and to focus on clear communication rather than solely on writing code. He notes that modern tools and rapid collaboration have changed how developers work, making concise presentations (e.g., lightning talks) and effective idea sharing crucial.
The interview concludes with a light‑hearted note and a photo of the participants.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITPUB
Official ITPUB account sharing technical insights, community news, and exciting events.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
