mcpField
R
rebase

rebase

github.com/raine开发3.0k42 次安装3 天前更新
代码仓库

关于 rebase

rebase 是用于 Git 操作的技能,可根据参数选择目标分支并执行变基。它会处理本地改动和冲突,并在成功后恢复其创建的暂存内容。

主要功能

  1. 01按参数选择变基目标
  2. 02变基前暂存本地改动
  3. 03检查目标分支近期变更
  4. 04冲突时逐步继续变基
  5. 05成功后恢复暂存内容

适用场景

  1. 01将当前分支变基到配置的基分支
  2. 02变基到 origin/main 或指定远程分支
  3. 03在保留本地改动的情况下整理分支

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/raine/workmux --skill rebase

安装后在 Claude Code 中输入/rebase确认已加载。

详细介绍

变基当前分支。

参数:$ARGUMENTS

行为:

  • 不带参数:变基到当前分支的 workmux 基础分支 (git config branch.<current>.workmux-base);如果未配置,则回退到本地 main
  • "origin":获取 origin,并变基到 origin/main
  • "origin/branch":获取 origin,并变基到 origin/branch
  • "branch":变基到本地分支(使用 "main" 可强制变基到本地 main)

步骤:

  1. 使用 git status --porcelain 检查本地更改:
    • 如果工作树中有已暂存、未暂存或未跟踪的更改,使用以下命令将其暂存: git stash push --include-untracked -m "workmux rebase"。
    • 记住此命令是否创建了一个暂存项。已有的暂存项必须保持不变。
    • 如果暂存失败,在获取或变基之前停止。
  2. 解析参数:
    • 不带参数 → 目标为当前分支的 workmux 基础分支 (git config --get branch.$(git branch --show-current).workmux-base);如果 该值为空,则目标为 "main"。不获取。
    • 包含 "/"(例如 "origin/develop")→ 拆分为远程和分支,获取该远程,目标为 remote/branch
    • 仅为 "origin" → 获取 origin,目标为 "origin/main"
    • 其他任何值 → 目标为该分支名称,不获取
  3. 如果需要获取,运行:git fetch <remote>。如果在变基开始前获取或解析目标失败,则 停止前恢复步骤 1 创建的暂存项。
  4. 运行:git rebase <target>
  5. 如果出现冲突,请谨慎处理(见下文)
  6. 继续操作,直到变基完成
  7. 如果步骤 1 创建了暂存项,使用 git stash pop --index 恢复:
    • 仅在变基成功后恢复暂存项。
    • 如果恢复时出现冲突,保留暂存项,报告冲突,并将受影响的文件留待手动解决。

处理冲突:

  • 在解决任何冲突之前,先了解目标分支对每个冲突文件所做的更改
  • 对每个冲突文件,运行 git log -p -n 3 <target> -- <file>,查看目标分支中该文件的近期更改
  • 目标是同时保留目标分支和当前分支的更改
  • 解决每个冲突后,将文件暂存,并使用 git rebase --continue 继续
  • 如果冲突过于复杂或不明确,请先寻求指导,再继续

评论

支持 Markdown