git-branch-mixer

star 104

Manage git branch mixes and run mixdowns using ggmx and ggmxd. Use when the user says things like "add this branch to the mix", "remove a branch from the mix", "show the mix", "mix down the branches", or "run a mixdown".

aspiers By aspiers schedule Updated 2/21/2026

name: git-branch-mixer description: Manage git branch mixes and run mixdowns using ggmx and ggmxd. Use when the user says things like "add this branch to the mix", "remove a branch from the mix", "show the mix", "mix down the branches", or "run a mixdown". disable-model-invocation: true

Git Branch Mixer

ggmx (git mix) configures named sets of branches to merge together. ggmxd (git mixdown) executes a mixdown — resetting a target branch to a base and merging all the other branches in.

The typical use case is testing a combination of feature/bugfix branches together via a throw-away temporary working branch.

Configuring mixes with ggmx

ggmx                          # show all configured mixes
ggmx <target>                 # show branches in mix for <target>
ggmx <target> A B C           # set mix for <target> to branches A, B, C
                               # (first branch is the base)
ggmx [<target>] +D [-B]       # add D to / remove B from mix for <target>
                               # (defaults to 'working' if <target> omitted)
ggmx -d <target>              # delete the mix for <target>

Mixes are stored in git config under mixdown.<target>. You can also edit them directly with git config --edit.

Running a mixdown with ggmxd

ggmxd                          # run mixdown using config for default target ('working')
ggmxd -b <target>              # run mixdown using config for <target>
ggmxd BASE B1 [B2 ...]         # explicit mixdown: reset to BASE, merge B1, B2...
ggmxd -b <target> BASE B1 ...  # explicit mixdown into named target branch

Always pass -c / --checkout to leave the target branch checked out after the mixdown, ready for testing:

ggmxd -c                       # mixdown from config, stay on target branch
ggmxd -c BASE B1 B2            # explicit mixdown, stay on target branch

Without -c, ggmxd restores your previously checked-out branch after completing the mixdown. Use this when you want to rebuild the mix in the background without switching away from your current branch.

Other options

ggmxd -s STRATEGY              # set merge strategy (default: octopus)
                               # use e.g. -s recursive for sequential merges
                               # with conflict resolution shells between each

After changing a mix

After any ggmx operation that modifies a mix (adding, removing, or setting branches), always ask the user whether they want to run a mixdown now.

Typical workflow

# One-time setup: configure the mix for the 'working' target branch
ggmx working main feature/foo bugfix/bar

# Add another branch later
ggmx +feature/baz

# Run the mixdown and stay on the result for testing
ggmxd -c

# Rebuild after rebasing one of the branches
ggmxd -c
Install via CLI
npx skills add https://github.com/aspiers/git-config --skill git-branch-mixer
Repository Details
star Stars 104
call_split Forks 11
navigation Branch main
article Path SKILL.md
More from Creator