Files
holocron/plugins/git/.apm/skills/git-branches/references/branch-operations.md
Defame1297 0fde892f20 refactor(git-branches): retrofit to the ADR-0020 context contract
Description 612 -> 273 chars, body 1124 -> 457 words. Branch patterns,
operations, merging, comparison, and the orchestrator contract move to
references/.

Corrects rebase routing in four places: this skill sent rebase to
git-history, which carries no rebase content and disclaims it. Rebase is
git-commits'; cherry-pick and revert stay git-history's. Drops a Step 3
gate on a rebase flow this skill does not have.
2026-08-30 13:10:53 +00:00

1.7 KiB

source_keys
source_keys
context7-git-htmldocs

Per-action command mapping

One command per action. Where two forms exist, the first is the default and the second the escape hatch.

  • create — git switch -c <branch> <base>. Base comes from the config's base_branch (main under GitHub Flow, usually develop under Gitflow).
  • switch — git switch <branch> moves to an existing local branch; it aborts rather than clobbering conflicting local changes. git switch - returns to the previous branch.
  • delete (local) — git branch -d <branch> refuses when the branch holds unmerged commits, which is why it is the default. git branch -D <branch> forces the deletion and discards that work — only after the destructive-operation gates pass and confirm: true is set.
  • delete (remote) — git push origin --delete <branch>.
  • rename — git branch -m <old> <new>.
  • list — git branch (local), -a (local plus remote-tracking), -r (remote-tracking only), --merged / --no-merged (filter by merge status into the current branch).
  • track — git branch --set-upstream-to=origin/<branch> sets an upstream without pushing. git branch -vv shows the tracking state of every local branch.

get-intent

Git has no native field for free-text branch metadata, and this skill does not persist any. On create, the intent value is only returned in the structured result — the caller decides whether to store it.

On get-intent, either parse the intent back out of the branch-name convention (feature/<intent-slug>) or return { "intent": null } when the caller never persisted the create-time value. Never fabricate an intent: a downstream commit message built on a guessed intent is worse than one built on none.