but

Automate and govern Git operations with a workspace-aware CLI.

1|Updated Mar 16, 2026
One-click install
npx skills add https://github.com/otography/otography-app --skill but-otography
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: but
Source: https://github.com/otography/otography-app/tree/main/.agents/skills/gitbutler
Command: npx skills add https://github.com/otography/otography-app --skill but-otography

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Managing Git through ad-hoc commands is error-prone and hard to reproduce. GitButler provides a workspace-aware CLI that centralizes control and enforces safe mutation workflows, reducing mistakes and improving collaboration.

Core Features & Use Cases

  • Workspace-based staging: Stage changes to per-branch stacks, preventing cross-branch contamination.
  • Safe mutation rules: Enforce usage of but for writes and require status-after outputs for updates.
  • Comprehensive history & undo: Oplog-based undo, squash, absorb, and rework commits with dependency tracking.

Quick Start

Use but to inspect, stage, commit, and push changes per branch with automatic workspace tracking.

Frequently Asked Questions about but

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I stage changes to specific branches in a stacked branch workflow?

Workspace-based staging allows you to stage changes to per-branch stacks, preventing cross-branch contamination. You can apply or unapply branches within a workspace to keep commit histories isolated and organized.

What is the safest way to manage Git rebases and conflict resolution across multiple branch stacks?

Using a workspace-aware CLI enforces safe mutation rules for Git rebases and conflict resolution. It governs writes and requires status-after outputs, reducing manual Git pitfalls when managing stacked branches.

Can I squash, absorb, or rework commits with dependency tracking in version control?

Oplog-based undo and commit management let you squash, absorb, and rework commits with dependency tracking. This provides comprehensive history tracking and safe recovery for complex branch stacks.

How do I prevent cross-branch contamination when staging changes in a stacked branch workspace?

Workspace-based staging prevents cross-branch contamination by isolating staged changes to their specific branch stacks. The CLI applies changes per branch to maintain a precise and clean commit history.

Does this Git CLI approach work for complex multi-branch stacking and unapplied branch scenarios?

Yes, the CLI is designed for real-world workflows where multiple branches are stacked, applied, or unapplied. It enables precise commits, rebases, and conflict resolution without manual Git pitfalls.