用途:在 Git worktree 的功能分支存在未提交改动时,自动完成提交、合并到 master/main,并同步 worktree 分支。触发条件为用户说出类似“commit and merge to…”的指令。
主要能力与步骤:
- 收集上下文:并行运行 git status、git diff HEAD、git branch --show-current、git worktree list、git log --oneline -10,了解改动文件、当前分支、主 worktree 路径与分支、近期提交风格。
- 提交改动:避免使用 git add -A,改为 git add <specific relevant files> 指定文件,防止误加 .env 或构建产物。提交信息遵循近期日志风格,并通过 heredoc 保留格式,示例:git commit -m "$(cat <<'EOF'\n<type>(<scope>): <description>\n\nCo-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com\nEOF\n)"。
- 确定合并目标:从 git worktree list 的第一项获取主 worktree 路径 MAIN_PATH 及其分支 MAIN_BRANCH(通常为 master 或 main),以及当前分支 CURRENT_BRANCH。
- 合并到 master/main:优先尝试快进合并,若历史分叉则回退为普通合并提交:git -C <MAIN_PATH> merge --ff-only <CURRENT_BRANCH> || git -C <MAIN_PATH> merge <CURRENT_BRANCH> --no-edit。需告知用户实际采用的方式。
- 同步 worktree 分支:合并后运行 git merge <MAIN_BRANCH>,使 worktree 分支包含 master/main 上的已有提交。
- 确认:运行 git -C <MAIN_PATH> log --oneline -5,报告提交的文件与信息、合并方式,以及 worktree 分支已与 master/main 同步。
适用场景:使用 Git worktree 进行功能开发,需要将改动合并回主分支并保持分支同步的流程。
限制:资料未提供对冲突处理、权限、平台或收费的说明;执行前需确保主 worktree 路径与分支名称正确。