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

推荐订阅源

T
Threatpost
G
Google Developers Blog
Latest news
Latest news
Know Your Adversary
Know Your Adversary
O
OpenAI News
腾讯CDC
月光博客
月光博客
P
Privacy International News Feed
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
L
LINUX DO - 最新话题
雷峰网
雷峰网
AI
AI
Hacker News - Newest:
Hacker News - Newest: "LLM"
有赞技术团队
有赞技术团队
N
News and Events Feed by Topic
V
Vulnerabilities – Threatpost
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Docker
Google DeepMind News
Google DeepMind News
T
Tor Project blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
H
Heimdal Security Blog
I
Intezer
WordPress大学
WordPress大学
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 三生石上(FineUI控件)
G
GRAHAM CLULEY
Security Archives - TechRepublic
Security Archives - TechRepublic
F
Fortinet All Blogs
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V2EX - 技术
V2EX - 技术
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
T
Tenable Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
Visual Studio Blog
SecWiki News
SecWiki News
Cisco Talos Blog
Cisco Talos Blog

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 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 Virtual Branches Alpha Our We Are Developers Adventure Building Virtual Branches DevDays in Vilnius The Future of Software and Open Source Introducing GitButler
GitButler 0.15 - "Quirky Quinceañera"
Scott Chacon · 2025-07-02 · via Butler's Log

Today we released version 0.15 of the GitButler client, featuring a brand new user interface that we've been working on for quite a while.

The shiny new GitButler user interface

Our 0.14 release was at the end of November and we've done 35 releases since then. If you haven't been paying attention, we've changed a lot in that time.

Here's a quick overview.

We've changed the layout of the GitButler client to move the branch listing to another tab, helping you concentrate on your workspace more. This has moved a lot of the navigation around a bit, but in a way that we hope you'll find easier to use.

Our main workspace view is now a bit different, with the ability to have unassigned files and improved commit navigation.

In the previous interface, all modified files would be assigned to some branch. In 0.15, files will by default be in a single, unassigned list. You can still drag them to a branch to assign them there if you wish.

In 0.15 there are two modes for creating or modifying commit messages. A simple inline editor at the top of the lane, or you can also pop it out into a larger, richer editor to really craft your messages properly.

In addition to just having way more space, you can also make sure that your messages wrap automatically, so they look good on the command line too.

You may not even know that GitButler saves everything that you do and gives you infinite undo, but we do. We've moved the history timeline to a main tab so you can find and get to it easier. Undo anything you've done, easy as pie.

Easily browse through everything you've done and revert to any point in the past, now in tab form.

You can now select individual lines of code to commit, rather than only entire hunks.

Now you can commit only specific lines of change.

You can now drag a file from one commit directly to another one to amend both. Or drop it on the Unassigned lane to essentially "uncommit" it.

Drag a file in a commit back to being uncommitted, or into any other commit in any branch.

You can also now uncommit the changes of a single file from any commit by simply left clicking on it in the commit and selecting "Uncommit changes".

I'm pretty good at Git and I have to admit that even for me, it would be a bit of a mental exercise to figure out how to un-commit the changes in a single file, several commits back.

GitButler has allowed you to insert empty commits above or below other commits that you can modify later, but now you can create an empty commit as your first commit in a branch.

This allows you more flexibility to even be able to create a group of commit messages first, then add code changes to them after the fact.

GitButler can now use GitLab merge requests rather than only being able to open and manage GitHub's pull requests.

Want to open your project in Cursor instead of VS Code? No problem, now you can choose from a whole bunch of popular GUI code editors, including Zed, Windsurf and Cursor.

GitButler used to create special, semi-hidden references for the branches that we made. We are now just using normal Git branches for the virtual branches. We're working hard on making going back and forth between GitButler and vanilla git even better.

Speed and Stability

We're working hard to get to a fast and stable 1.0 release soon, and the new UI overhaul includes an iceberg of under the hood work that should make everything much faster and more stable going forward. It also paves the way for some incredibly exciting upcoming features.

Those are the main big things, but there are also tons of bug fixes, stability and speed improvements and more. If you want to try this out today, go download GitButler at a server near you.

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.