This skill should be used when the user asks to "create a virtual branch", "assign file to branch", "work on multiple features simultaneously", "organize commits after coding", "use but commands", or mentions GitButler, virtual branches, parallel development without checkout, post-hoc commit organization, multi-agent concurrent development, or `--gitbutler`/`--but` flags.
View on GitHubplugins/but/skills/virtual-branches/SKILL.md
February 1, 2026
Select agents to install to:
npx add-skill https://github.com/outfitter-dev/agents/blob/main/plugins/but/skills/virtual-branches/SKILL.md -a claude-code --skill gitbutler-virtual-branchesInstallation paths:
.claude/skills/gitbutler-virtual-branches/# GitButler Virtual Branches Virtual branches → parallel development → post-hoc organization. <when_to_use> - Multiple unrelated features in same workspace simultaneously - Multi-agent concurrent development (agents in same repo) - Exploratory coding where organization comes after writing - Post-hoc commit reorganization needed - Visual organization preferred (GUI + CLI) NOT for: projects using Graphite (incompatible models), simple linear workflows (use plain git), when PR submission automation required end-to-end (use Graphite instead) </when_to_use> ## This, Not That | Task | This | Not That | | ---- | ---- | -------- | | Initialize workspace | `but init` | manual setup | | Create branch | `but branch new name` | `git checkout -b name` | | View changes | `but status` | `git status` | | Assign file to branch | `but rub <file-id> <branch>` | manual staging | | Commit to branch | `but commit <branch> -m "msg"` | `git commit -m "msg"` | | Move commit | `but rub <sha> <branch>` | `git cherry-pick` | | Squash commits | `but rub <newer> <older>` | `git rebase -i` | | Undo operation | `but undo` | `git reset` | | Switch context | Create new branch | `git checkout` | **Key difference from Git**: All branches visible at once. Organize files to branches after editing. No checkout. ## Core Concepts | Concept | Description | |---------|-------------| | Virtual branches | Multiple branches applied simultaneously to working directory | | Integration branch | `gitbutler/workspace` tracks virtual branch state — never touch directly | | Target branch | Base branch (e.g., `origin/main`) all work diverges from | | File assignment | Assign file hunks to branches with `but rub` | | Oplog | Operations log for undo/restore — your safety net | ## Quick Start ```bash # Initialize (one time) but init # Create branch but branch new feature-auth # Make changes, check status for file IDs but status # ╭┄00 [Unassigned Changes] # │ m6 A src/auth.ts # Assign file to branch using
Issues Found: