GitButler is a git client that lets you work on multiple branches at the same time. It allows you to quickly organize file changes into separate branches while still having them applied to your working directory.
You can then push branches individually to your remote, or directly create pull requests.
In a nutshell, it’s a more flexible version of git add -p
and git rebase -i
, allowing you to efficiently multitask across branches.
GitButler keeps track of uncommitted changes in a layer on top of Git. Changes to files or parts of files can be grouped into what we call virtual branches.
Whenever you are happy with the contents of a virtual branch, you can push it to a remote. GitButler makes sure that the state of other virtual branches is kept separate.
The branches that we know and love in Git are separate universes, and switching between them is a full context switch.
GitButler allows you to work with multiple branches in parallel in the same working directory. This effectively means having the content of multiple branches available at the same time.
GitButler is aware of changes before they are committed. This allows it to keep a record of which virtual branch each individual diff belongs to.
Effectively, this means that you can separate out individual branches with their content at any time to push them to a remote or to unapply them from your working directory.
And finally, while in Git it is preferable that you create your desired branch ahead of time, using GitButler you can move changes between virtual branches at any point during development.
We love Git. Our own @schacon has even published the Pro Git book. At the same time, Git’s user interface hasn’t been fundamentally changed for 15 years.
While it was written for Linux kernel devs sending patches to each other over mailing lists, most developers today have different workflows and needs.
Instead of trying to fit the semantics of the Git CLI into a graphical interface, we are starting with the developer workflow and mapping it back to Git.
GitButler is a Tauri-based application. Its UI is written in Svelte using TypeScript and its backend is written in Rust.
For more information click here.
SpyAI is a sophisticated form of malware that leverages advanced technologies to capture and analyze…
The Proxmark3 is a versatile, open-source tool designed for radio-frequency identification (RFID) security analysis, research,…
The "Awesome Solana Security" collection is a comprehensive resource designed to help developers build more…
The "IngressNightmare" vulnerabilities, disclosed in March 2025, represent a critical set of security issues affecting…
AdaptixC2 is an advanced post-exploitation and adversarial emulation framework designed specifically for penetration testers. It…
Bincrypter is a powerful Linux binary runtime crypter written in BASH. It is designed to…