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.
35 lines
1.7 KiB
Markdown
35 lines
1.7 KiB
Markdown
---
|
|
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.
|