Log in to leave a comment
No posts yet
A developer's time is expensive. However, we often waste a significant portion of that precious time on context switching rather than writing code. The process of running git stash for an urgent hotfix request in the middle of feature development, moving branches, and then coming back to stash pop only to resolve conflicts, shatters a senior engineer's concentration.
Standard Git was designed for linear history management. It operates on the assumption that you are doing only one thing at a time. But the real world is complex. You need to develop new features while simultaneously reflecting feedback from multiple code reviews. In 2026, it is time to acknowledge the limitations of Git and evolve our tools. The GitButler CLI, but, is more than just a convenience tool—it changes the paradigm of version control.
GitButler's most powerful weapon is the ability to activate multiple branches simultaneously in a single working directory. This was impossible in traditional Git.
Standard Git maintains only one HEAD pointer at any given time. In contrast, GitButler uses a special branch called gitbutler/workspace to maintain a real-time merged state of all currently active virtual branches (Lanes).
| Comparison Item | Standard Git (Vanilla) | GitButler (Virtual Branches) |
|---|---|---|
| Workspace State | Only one branch exists at a time | Changes from multiple virtual branches coexist |
| Context Switching | Stash + Checkout (Seconds to Minutes) | Instant (Logical allocation change) |
| Conflict Management | Rebase must be aborted | Work can continue by preserving conflicts as a 'state' |
Thanks to this structure, IDEs and compilers recognize multiple tasks as a single consistent source tree without any special configuration. This means multitasking is possible without breaking your flow.
Let's look at specific methodologies that physically shorten work speed beyond mere convenience.
What would you do if you found a typo while writing complex logic? In the past, you had to stop what you were doing. Now, you can just fix it on the spot and type but branch new fix-typo. While keeping the workspace as is, you can logically assign specific modifications (Hunks) to a new branch.
Commit history is a narrative delivered to colleagues. Messy intermediate steps should be omitted. GitButler introduced the but rub command to remove the complexity of rebase -i. It's a way of "rubbing" and absorbing modifications into a specific commit. Upon execution, that commit is immediately amended, and its parent commits are automatically restacked. This is supported by a First Class Conflict system that eliminates the need to stop work due to conflicts during a rebase.
The core of the 2026 update is "Marking." If you designate a specific commit as an active mark, all subsequent changes are automatically accumulated at that point.
This is particularly powerful when using AI agents like Claude Code or Cursor. It automatically merges the numerous fragments of code generated by the agent into a single, clean semantic unit, ensuring the history always maintains its final form. The hassle of having to remember autosquash after commit --fixup completely disappears.
The biggest fear when introducing a new tool is data loss. GitButler provides Oplog, which is more sophisticated than Git's reflog. Since it records a full snapshot of all data before any change, even if you accidentally delete a commit or mess up a rebase, a single but undo perfectly restores everything, even down to the conflict resolution state.
Additionally, for power users, JSON flags (but status -j) are supported in all commands. Combining this with jq allows you to implement automation scripts—such as pushing only specific virtual branches based on CI results—in just a few lines.
but config target origin/main.but setup process.The inconvenience of stash and checkout that we use every day was not actually inevitable. Do not limit your thinking to the constraints of your tools.
Parallel work through virtual branches and intuitive history refinement provide developers with psychological stability. The confidence that you can revert mistakes and collaborate without breaking your flow is what makes the difference in productivity. Try typing but status in your terminal right now. The moment you see how much more logical and free your working directory can be, you will never be able to go back to the inefficiencies of the past.