The request came in fast: Git checkout needs more control. Engineers had been swapping branches for years, yet core pain points remained. Submodules broke context. Detached HEAD states confused newcomers. Rebasing while checking out could trigger merge conflicts that felt avoidable.
A Git checkout feature request captures these frustrations in one place. It’s not about reinventing Git, but making git checkout smarter, faster, and safer. The command is central to daily workflows, yet its behavior is locked to conventions from a different era.
Key improvements often proposed include:
Transactional branch switching
Switch branches with an atomic operation that aborts on conflict, without partially applying changes. This prevents broken worktrees and wasted merges.
Preserve uncommitted changes intelligently
Store unstaged changes in a temporary stash and reapply seamlessly when switching back, without manual intervention.