So, I decided to tackle this “cherry-pick Seattle” thing today. I’ve heard about it, seen it mentioned in a few Git tutorials, but never actually done it. Time to get my hands dirty.
First, I created a couple of branches in my test repository. One was my “main” branch, simulating the main codebase. The other, I called “feature-branch,” where I’d pretend to be working on some new, isolated piece of code.

On the “feature-branch,” I made a few commits. Let’s say, three commits:
- Commit 1: Added a new function to calculate something.
- Commit 2: Fixed a tiny bug in that function.
- Commit 3: Added some comments (because I’m a good developer, of course).
Now, here’s the scenario. I realized that the bug fix in Commit 2 was actually super important and needed to be in the “main” branch right now. But, I didn’t want the other stuff from the feature branch yet. It wasn’t ready.
This is where cherry-picking comes in. I switched back to my “main” branch using git checkout main
.
Then, I needed to find the commit hash of that bug fix (Commit 2). The easiest way is usually to look at the log on the feature branch. I did that with git log feature-branch
. It spits out a bunch of stuff, but I scrolled through until I found the commit I wanted. It’ll have a long string of letters and numbers – that’s the commit hash.
I copied that hash. It looked something like “a1b2c3d4e5f6…” (obviously, it was a real hash, not that gibberish).
Finally, the magic command! While still on my “main” branch, I typed git cherry-pick a1b2c3d4e5f6
(using the actual hash I copied). I hit Enter.
Boom! Git applied just that one commit to my “main” branch. It was like magic! I checked the log on “main” with git log
, and there it was – the bug fix, sitting pretty on top of all the other “main” branch commits.
I did a quick test, made sure everything was working as expected, and… success! I successfully cherry-picked a single commit. Feels good, man. It’s like being a Git surgeon, carefully extracting just the bit you need.

There might have been some conflicts if the same lines of code had been changed in both branches, but I was lucky in this practice. If conflict happens, I will need to manually resolve them. But this time is good.