
AWS CodeCommit
Managed source control service for hosting private Git repositories securely in AWS
Discover top open-source software, updated regularly with real-world adoption signals.

Work on multiple Git branches simultaneously, no context switching
Git client enabling parallel work across multiple branches in one working directory. Organize uncommitted changes into virtual branches and push them independently without traditional context switching.

GitButler reimagines branch management by letting developers work on multiple branches simultaneously within a single working directory. Unlike traditional Git workflows that require full context switches between branches, GitButler tracks uncommitted changes in a layer above Git, allowing you to organize file changes—or even parts of files—into separate virtual branches while keeping them all applied to your workspace.
The tool maintains awareness of changes before they're committed, recording which virtual branch each diff belongs to. This means you can efficiently multitask across branches, grouping changes dynamically and pushing branches individually to remotes or creating pull requests directly. Virtual branches can be applied or unapplied from your working directory at any time without losing context.
GitButler serves as a more flexible alternative to git add -p and git rebase -i, designed for developers who juggle multiple features, bug fixes, or experiments concurrently. Available for macOS, Linux, and Windows, it brings a fundamentally different approach to branch management that eliminates the friction of constant branch switching.
When teams consider GitButler, these hosted platforms usually appear on the same shortlist.

Managed source control service for hosting private Git repositories securely in AWS

Cloud-hosted set of version control tools (Git and TFVC) for managing source code with Azure DevOps

Web-based Git repository hosting service for source code version control and team collaboration (by Atlassian)
Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.
Parallel Feature Development
Work on multiple features simultaneously without stashing or switching branches, organizing changes into virtual branches and pushing each when ready.
Hotfix During Feature Work
Address urgent bugs while keeping feature work applied in your workspace—separate the fix into its own virtual branch and push immediately without disrupting ongoing development.
Granular Commit Organization
Split uncommitted changes across files or within individual files into logical branches for cleaner pull requests and more focused code reviews.
Experimental Code Management
Test multiple approaches to a problem in parallel, keeping each experiment in a separate virtual branch that can be applied or unapplied without losing work.
Virtual branches allow multiple branches to coexist in your working directory simultaneously, whereas traditional Git branches require full context switches. GitButler tracks which changes belong to which virtual branch before they're committed.
GitButler works as a layer on top of Git and does not replace it. Your repository remains a standard Git repository, and you can use other Git clients alongside GitButler.
Yes, you can push virtual branches individually to remotes or create pull requests directly from GitButler. Each virtual branch can be managed independently.
GitButler is available as a desktop application for macOS (Apple Silicon and Intel), Linux (AppImage and deb packages), and Windows (msi installer).
Yes, GitButler allows you to group individual diffs or parts of files into separate virtual branches, providing finer control than traditional staging.
Project at a glance
ActiveLast synced 4 days ago