GitButler is a Git-based version control client that allows developers to work on multiple branches simultaneously, while maintaining proper version control.

It acts as a layer on top of Git that keeps track of the uncommitted changes in a repository.. Changes are grouped into virtual branches, and these branches can be worked in parallel in the same working directory. 

According to the project maintainers, the goal of this project is to reduce context switching, as normally in Git branches are treated separately, requiring context switching to move between them. In GitButler, the content is all readily available. 

Some common use cases are fixing a bug while simultaneously working on a feature or using someone else’s branch with your own to test it out. 

Key features of GitButler include the ability to manage commits by dragging and dropping, integration with GitHub, easy SSH key management, and commit signing. It even has AI features that help with writing commit messages and creating descriptive branch names. 

“We love Git … 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,” the maintainers wrote. 

As of the time of this writing, GitButler has over 5.5k stars on GitHub and over 20 contributors.