惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security @ Cisco Blogs
罗磊的独立博客
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
T
The Blog of Author Tim Ferriss
美团技术团队
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
博客园 - Franky
G
Google Developers Blog
Jina AI
Jina AI
Stack Overflow Blog
Stack Overflow Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
Visual Studio Blog
腾讯CDC
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements
博客园 - 叶小钗
Microsoft Security Blog
Microsoft Security Blog
雷峰网
雷峰网
L
LangChain Blog
Vercel News
Vercel News
Forbes - Security
Forbes - Security
PCI Perspectives
PCI Perspectives
N
News | PayPal Newsroom
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
博客园 - 司徒正美
J
Java Code Geeks
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
Schneier on Security
Schneier on Security
A
About on SuperTechFans
Attack and Defense Labs
Attack and Defense Labs
Google Online Security Blog
Google Online Security Blog
aimingoo的专栏
aimingoo的专栏
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
Cloudbric
Cloudbric
B
Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
D
DataBreaches.Net
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic

Butler's Log

Agentic Version Control Benchmarks Grit: rewriting Git in Rust with agents Git Merge 2026 Agent-safe Git with GitButler We’ve raised $17M to build what comes after Git Announcing the GitButler CLI for Linux The Great CSS Expansion A couple of git nits Simplifying Git by Using GitButler Introducing the GitButler CLI GitButler 0.19 - "Commander Keen" But Head: Crafting a Custom Font MCP vs RAG: Two Very Different Ways to Gain Context Getting Started With GitButler Agents Using the GitButler MCP Server to Build Better AI-Driven Git Workflows Using GitButler With Multiple GitHub Accounts Advent of Code! Upcoming GitButler Events Use GitButler for your Gerrit workflow Integrating GitButler and GitHub Enterprise Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) - Part 3 Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) - Part 2 Butler Flow: shipping code faster (but less like Alfred, more like CI on steroids) - Part 1 Grid Happens: Because Flexbox Wasn’t Enough Using Cursor Hooks for automatic version control Deep Dive into the new Cursor Hooks A Responsive Item Counter with CSS only GitButler 0.16 - "Sweet Sixteen" GitButler's Claude Code tab GitButler's Annual Open Source Pledge Report Git Mini Summit 2025 Videos Automate Your AI Workflows with Claude Code Hooks Managing Multiple Claude Code Sessions Without Worktrees GitButler 0.15 - "Quirky Quinceañera" 20 years of Git. Still weird, still wonderful. GitButler's new patch based Code Review (Beta) Going down the rabbit hole of Git's new bundle-uri How to do patch-based review with git range-diff How Core Git Developers Configure Git Why is Git Autocorrect too fast for Formula One drivers? Stacked Branches with GitButler Git Merge 2024 Talks are Up GitButler 0.13 - "Lucky Baseball" Fearless Rebasing Git Merge 2024 Why GitHub Actually Won GitButler is joining the Open Source Pledge The New Era of Town Hall Chat The Future of Open Source GitButler is now Fair Source Git Merge 2024 GitButler 0.12 - "Stingy Baker" The Birth of THE MERGE GitButler for Windows Fixing up Git with Autosquash The Git Zeitgeist Git Worktrees and GitButler DevWorld Git Slides Git Tips and Tricks Git Tips 1: Oldies but Goodies Git Tips 2: New Stuff in Git Git Tips 3: Really Large Repositories FOSDEM Git Talk Opening Up GitButler Debugging Tauri in VS Code Advent of GitButler Code Signing Commits in Git, Explained Our We Are Developers Adventure Building Virtual Branches DevDays in Vilnius The Future of Software and Open Source Introducing GitButler
Virtual Branches Alpha
Scott Chacon · 2023-09-01 · via Butler's Log

GitButler is introducing an entirely new way to work on branches, while still remaining in your existing Git workflows.

Introduction to our new client featuring our Virtual Branches Alpha.

There aren't a lot of things that I enjoy more than approaching a problem from first principles. That is, looking at something that we've taken for granted unquestioningly for a long time, breaking it down to what we're fundamentally trying to accomplish and building it back up in a way that solves those problems better, simpler or more elegantly.

When we started GitButler, this was our guiding concept. Look at what Git does for us every day as developers, break it down into what we're really trying to use it for, then rethink how we could solve that fundamental problem in a better way.

We're not just building a new Git client. We're trying to figure out what Git solves for you and do those things better, and our first major target is branching and merging.

You may think to yourself, "Why branching? Branching in Git is great!", and compared to tools that Git replaced, you're very correct. But there are two reasons why branching is the most important thing for us to tackle.

The first is that it is by far the place that most of us spend most of our time. The second is that due to that, it's by far the place where most of us waste time, make mistakes, or lose work in Git.

If we can make branching massively better, then it's the biggest possible impact we can make in everyone's workflows, every day.

Git Branches, Pros and Cons

When we looked at branching in Git, we broke it down into what it's good at and what it's not great at.

Git branching is good at a lot of things, especially when you compare it to tooling that many of us used before Git.

It's insanely good at reintegrating branches multiple times, something that it's predecessors like SVN were notoriously horrible at, which has allowed us to have long lived branches that aren't suicidal to finally merge.

It's very good at quickly experimenting, at creating tiny, inexpensive contexts to try out ideas. It's very good at switching contexts relatively quickly and isolating work effectively. It's very smart and sophisticated in various merging scenarios.

But what is it not good at?

Perhaps this is a question that isn't asked enough. It's better than what came before, but does that mask us from the weaknesses in this approach that we endure every day, just thankful that we're less abused than we previously were?

If you think about it, Git branching isn't actually great at several things that are relevant to the modern developer's workflow.

The big thing is that you can't be on more than one branch at the same time. This means that there are a lot of things that you can't easily do.

You can't fix a discovered bug easily without either switching contexts or entangling it into the context you're currently working on. You can't evaluate a coworkers branch without switching contexts or creating a merge artifact (and thus entangling your branches). You can't easily stash or ignore parts of what you're working on.

To tackle these issues, we've developed a new way to do branching and merging called "virtual branches".

With virtual branches, you can basically have multiple branches that you work on simultaneously. Any changes you make can be dragged visually from one branch to another, committed and continuously worked on without switching branches or creating unneeded dependencies between branches or changes.

You are no longer switching branches, you are able to apply and unapply combinations of branches and direct work to any of them at any time.

We find virtual branches to be a much simpler, more powerful and more natural way to work.

More in depth usage of our virtual branch tool, including handling merge conflicts, previewing remote branches and more.

Today we are opening up our private alpha to more users to get early feedback. If you're interested in helping us test out an early preview of our new tool, either join our waiting list, or join us on Discord and ask us for an invite.

Scott Chacon

Written by Scott Chacon

Scott Chacon is a co-founder of GitHub and GitButler, where he builds innovative tools for modern version control. He has authored Pro Git and spoken globally on Git and software collaboration.