| 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.
Critical rule: mixdown target branches (especially working) are local
throw-away integration branches. Never push a mixdown target branch, create a PR
from it, or otherwise publish it unless the user explicitly asks for that exact
action. Independent source branches may be pushed as needed, but the mixed
working branch stays local by default.
Configuring mixes with ggmx
ggmx
ggmx <target>
ggmx <target> A B C
ggmx [<target>] +D [-B]
ggmx -d <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
ggmxd -b <target>
ggmxd BASE B1 [B2 ...]
ggmxd -b <target> BASE B1 ...
Always pass -c / --checkout to leave the target branch checked out
after the mixdown, ready for testing:
ggmxd -c
ggmxd -c BASE B1 B2
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
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
ggmx working main feature/foo bugfix/bar
ggmx +feature/baz
ggmxd -c
ggmxd -c