Q: You started coding directly on `main` and made three commits. You realize this work belongs on a feature branch and you haven't pushed yet. How do you move those commits to a new branch and clean up `main`?
A branch in Git is just a pointer to a commit, so "moving" commits is really just moving pointers around.
#Git #Branching, Merging & Conflicts #L1 #Version Control #Collaboration
🎙️ Candidate Opening & Architectural Context
""In a fast-paced team with dozens of pull requests merged daily, Git workflow hygiene was critical. The interviewer is testing: Basic branch mechanics, understanding that branches are just movable pointers to commits.. I structure my answer around systematic triage first, root cause analysis second, and permanent remediation third.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Initial Diagnostics & Root Cause Analysis
A branch in Git is just a pointer to a commit, so "moving" commits is really just moving pointers around.
- Create the feature branch from where you are right now — this captures your three commits on the new branch:
- Reset
mainback to where the remote is — your localmainstill points at the third commit; rewind it: - Switch to the feature branch and continue:
2️⃣
Remediation & Permanent Safeguards
The order matters: create the new branch *before* you reset, otherwise the commits become unreachable from any branch (they'd still be in reflog for ~90 days, but don't rely on that). Since you never pushed, no one else is affected.
git branch feature/my-work
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Create the feature branch from where you are right now — this captures your three commits on the new branch:."
⚡ 60-Second Elevator Pitch Talking Points
- Create the feature branch from where you are right now — this captures your three commits on the ...
- Reset main back to where the remote is — your local main still points at the third commit; rewind...
- Switch to the feature branch and continue:
Advertisement