用途:在合并派生分支时保持目标分支历史干净。典型场景是 a 从 develop 分出、b 从 a 分出,而 a 已合并,此时只把 b 自己的提交重放到正确基线上。
主要能力与规则:开始前必须加载 references/safety.md;不猜测要变基的分支,无法确定时询问;不假设 develop 存在,需同时校验本地与远程,不存在则询问改用 main、master 或其他基线;拒绝直接变基 main、master、develop 等受保护分支;要求工作区干净,有暂存或未暂存改动时停止并询问提交、暂存还是取消,未经明确批准不自动 stash;当目标分支包含不应重放的父分支提交时使用 rebase --onto;已推送分支只能用 --force-with-lease,禁止普通 --force;每次推送(含首次 git push -u 和重写历史的 --force-with-lease)都要展示确切命令并获得确认;不合并分支或 PR,除非用户明确批准该具体合并动作;避免 reset --hard、push --force 等破坏性命令;不静默解决冲突。
使用方式:先执行 git fetch origin --prune、git branch --show-current、git status --porcelain=v1 -b、git branch --list、git branch -r,并用 git show-ref 校验 develop。确定目标与基线后,简单变基用 git rebase <base>,需丢弃父分支提交时用 git rebase --onto <base> <upstream-to-drop> <target>;--fork-point 仅在必要时使用。冲突时用 git status、git add、git rebase --continue,取消用 git rebase --abort。同步远程时,已存在用 git push --force-with-lease origin <target>,不存在用 git push -u origin <target>。
适用场景与限制:适合需要线性、干净历史的特性分支合并前整理。独立运行时需一次变基计划确认;若在已接受的 krt-release-marshal 计划内且目标、基线、上游明确,可跳过第二次本地确认,但仅当该计划包含完全相同的推送命令且远程、分支/refspec、推送模式仍匹配时才复用其远程授权,否则仍需询问。该技能只推荐合并策略(squash and merge、rebase and merge,或为线性历史避免 merge commit),不代为执行合并。