GitButler ⧓

Commands
>_

but branch

Commands for managing branches.

This includes creating, deleting, listing, and showing details about branches.

By default without a subcommand, it will list the branches.

To apply or unapply branches, use but apply and but unapply.

Usage: but branch <COMMAND>

Subcommands

but branch new

Creates a new branch in the workspace

If no branch name is provided, a new parallel branch with a generated name will be created.

You can also specify an anchor point using the --anchor option, which can be either a commit ID or an existing branch name to create the new branch from. This allows you to create stacked branches.

Usage: but branch new [BRANCH_NAME] [OPTIONS]

Arguments:

  • <BRANCH_NAME> — Name of the new branch

Options:

  • -a, --anchor <ANCHOR> — Anchor point - either a commit ID or branch name to create the new branch from

but branch delete

Deletes a branch from the workspace

This will remove the branch and all its commits from the workspace. If the branch has unpushed commits, you will be prompted for confirmation unless the --force flag is used.

Usage: but branch delete <BRANCH_NAME> [OPTIONS]

Arguments:

  • <BRANCH_NAME> — Name of the branch to delete (required)

Options:

  • -f, --force — Force deletion without confirmation

but branch list

List the branches in the repository

By default, shows the active branch and the 20 most recently updated branches.

You can use the --all flag to show all branches, --local to show only local branches, or --remote to show only remote branches.

You can also filter branch names by specifying a substring, such as but branch list feature to show only branches with "feature" in the name.

If you want to check for review status, you can add --review to fetch and display pull request or merge request information for each branch. This will make the command slower as it needs to query the forge.

By default, the command checks if each branch merges cleanly into the upstream base target branch (not your workspace). You can disable this check with --no-check to make the command faster.

By default it also calculates the number of commits each branch is ahead of the base branch. You can disable this with --no-ahead to make the command faster.

Usage: but branch list [FILTER] [OPTIONS]

Arguments:

  • <FILTER> — Filter branches by name (case-insensitive substring match)

Options:

  • -l, --local — Show only local branches
  • -r, --remote — Show only remote branches
  • -a, --all — Show all branches (not just active + 20 most recent)
  • --no-ahead — Don't calculate and show number of commits ahead of base (faster)
  • --review — Fetch and display review information (PRs, MRs, etc.)
  • --no-check — Don't check if each branch merges cleanly into upstream

but branch show

Show commits ahead of base for a specific branch

This shows the list of commits that are on the specified branch but not yet integrated into the base target branch.

You can also choose to fetch and display review information, show files modified in each commit with line counts, generate an AI summary of the branch changes, and check if the branch merges cleanly into upstream.

Usage: but branch show <BRANCH_ID> [OPTIONS]

Arguments:

  • <BRANCH_ID> — CLI ID or name of the branch to show (required)

Options:

  • -r, --review — Fetch and display review information
  • -f, --files — Show files modified in each commit with line counts
  • --ai — Generate AI summary of the branch changes
  • --check — Check if the branch merges cleanly into upstream and identify conflicting commits

Last updated on

On this page

Edit on GitHubGive us feedback