🥇 Main Branch: The One Where the Old Commands Win
Hiya friends,
There’s a lot of purple AI-generated noise out there right now. This week I want to cut through it with two things that actually matter: a Git release that’s been quietly sitting in your terminal, and a debugging command most devs skip entirely.
🚢 What Shipped
Git 2.54 ships git history — and it’s the rebase fix you didn’t know you needed
Git 2.54 dropped April 20 with a new experimental command: git history. It does two things: reword lets you fix a commit message without spinning up a full interactive rebase. split breaks one commit into two.
# Fix a typo in the last commit message
git history reword HEAD~1
# Split a commit into two
git history split HEAD~2
It won’t work on histories with merge commits and refuses to proceed if it would cause a conflict. That’s by design. It runs without touching your working tree, so it’s safe to script.
Also in 2.54: git rebase --trailer appends a trailer like Reviewed-by: to every rebased commit in one shot.
If you’re shipping AI-generated code fast, your commit history is probably a mess. git history is how you clean it up.
git switch and git restore exist. Time to use them.
In 2019 Git split git checkout into two commands. git switch for branches, git restore for files. Clearer intent, less room for mistakes. The old command still works. It just wasn’t designed to do one thing well.
git switch handles branches:
git switch main # switch to main
git switch -c my-feature # create and switch in one step
git switch - # go back to previous branch
git restore handles files:
git restore README.md # discard unstaged changes to a file
git restore --staged README.md # unstage a file without losing changes
The difference matters. With git checkout, git checkout README.md and git checkout main look nearly identical. One restores a file. One switches branches. That ambiguity has caused real data loss.
AI-generated scripts still use git checkout everywhere. Now you know the modern version — and you can spot when the generated code is behind.
🎧 What I’m Watching
Copilot CLI update: chronicle, plugins, and fleet mode | GitHub Checkout by Ryan Hecht, GitHub
Ryan is the PM behind Copilot CLI and one of the clearest explainers I know. This episode covers /chronicle, the plugin marketplace, and what’s next for the best harness IMO.
Worth your time if: you’re curious where agentic terminal workflows are actually heading. Watch on YouTube
🔧 What I’m Using
I tried both Claude’s design tool and Google Stitch for UI generation. Stitch won, and it wasn’t close. This week Google also open-sourced DESIGN.md — a plain markdown spec that gives AI agents your actual design system: not just hex codes, but the why behind each token.
Drop it in your project root and any coding agent generates on-brand UI without you re-explaining your brand every single prompt. Less purple for all!
✨ This Week
Google Cloud Next has me in Vegas, and today at 3:30pm I’m doing a lightning talk from the GitHub booth on multi-model AI workflows. If you’re here, come say hi. That’s also why this landed in your inbox on a Thursday.
With gratitude,
I’ll see you next week,
Andrea
📌 P.S.: I think I found my next career…JK…or am I 😀

DJ MainBranch reporting for duty!
Audio Version: This newsletter is also available as audio, generated using Fish Audio with my cloned voice. Fish Audio makes it incredibly easy to create natural-sounding speech from text — I simply paste the newsletter content and get high-quality audio in seconds.
Subscribe to Main Branch
Join developers shipping real features. Every issue is a three-minute read packed with fundamentals you can apply today.
No spam. Unsubscribe anytime.