rebase-latest-main — скилл для Claude Code: ребейз на свежий main
Скилл проводит агента по шагам: проверить ветку, сделать fetch, ребейзнуть на origin/main и разрулить конфликты. Полезен, когда ветка отстала от main.
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a claude-codeЧто делает rebase-latest-main
Скилл описывает порядок действий для git. Сначала агент смотрит текущую ветку и проверяет, нет ли незакоммиченных изменений. Если они есть, он либо просит вас закоммитить, либо спрашивает, что делать дальше — закоммитить, спрятать в stash или отменить.
Дальше идёт git fetch origin main и git rebase origin/main. При конфликтах агент находит файлы через git diff --name-only --diff-filter=U, читает каждый, разбирает обе версии и стейджит результат через git add <resolved-file>, после чего продолжает ребейз. Если разрулить не выходит, он показывает маркеры конфликта и ждёт вашего решения; откат — git rebase --abort.
После успешного ребейза скилл пушит через git push --force-with-lease — это безопаснее --force, потому что не затирает чужую работу. Один момент: если в вашем флоу force-push в общую ветку запрещён, шаг придётся пропустить руками. В конце агент отчитывается, сколько коммитов перенёс и какие конфликты закрыл.
Какие задачи решает
- подтянуть свежий origin/main в свою ветку
- разрулить конфликты при ребейзе
- проверить, нет ли незакоммиченных изменений перед ребейзом
- откатить неудачный ребейз через git rebase --abort
- обновить удалённую ветку после переноса коммитов
Примеры запросов агенту
- сделай ребейз на свежий main
- обнови мою ветку последним main
- синхронизируй ветку с upstream
Как установить rebase-latest-main
1Через Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a claude-code2Вручную: положить файлы
~/.claude/skills/rebase-latest-main/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/rebase-latest-main/
1Через Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a codex2Вручную: положить файлы
.agents/skills/rebase-latest-main/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a cursor2Вручную: положить файлы
.cursor/skills/rebase-latest-main/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dyoshikawa/rulesync rebase-latest-main2Вручную: положить файлы
.github/skills/rebase-latest-main/SKILL.md1Через Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a gemini-cli2Командой платформы
gemini skills install https://github.com/dyoshikawa/rulesync --path .rulesync/skills/rebase-latest-mainВручную: положить файлы
.devin/skills/rebase-latest-main/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора11
Похожие
Рядом в теме «Git и GitHub»
Все скиллы по теме «Git и GitHub» →Вопросы о rebase-latest-main
Как установить rebase-latest-main в Claude?
Выполните npx skills add dyoshikawa/rulesync --skill rebase-latest-main -a claude-code. Скилл появится по пути ~/.claude/skills/rebase-latest-main/SKILL.md.
Что делает rebase-latest-main?
Проводит агента по шагам: проверка ветки и рабочего дерева, git fetch origin main, ребейз, разрешение конфликтов и force-push с --force-with-lease.
Скилл сам коммитит мои изменения?
Нет. При незакоммиченных изменениях он спрашивает, что делать: закоммитить, спрятать в stash или отменить операцию.
Исходный текст
SKILL.md · MIT
---
name: rebase-latest-main
description: >-
Fetch latest origin/main and rebase it onto the current branch, resolving
conflicts if necessary. Use when the user wants to rebase on main, update
their branch with latest main, or sync with upstream.
targets:
- "*"
---
# Rebase Latest Main
Fetch the latest `origin/main` and rebase it onto the current working branch.
## Step 1: Verify Current State
1. Check the current branch:
```bash
git branch --show-current
```
2. Ensure there are no uncommitted changes:
```bash
git status --porcelain
```
If there are uncommitted changes, either:
- Commit them first, or
- Ask the user how to proceed (commit, stash, or abort)
## Step 2: Fetch Latest Changes
Fetch the latest changes from the remote:
```bash
git fetch origin main
```
## Step 3: Rebase onto origin/main
Start the rebase:
```bash
git rebase origin/main
```
### If rebase succeeds without conflicts:
Proceed to Step 5.
### If conflicts occur:
1. Identify conflicting files:
```bash
git diff --name-only --diff-filter=U
```
2. For each conflicting file:
- Read the file content to understand the conflict
- Analyze both versions (HEAD and origin/main)
- Resolve the conflict by choosing the appropriate changes or merging them
- Stage the resolved file:
```bash
git add <resolved-file>
```
3. Continue the rebase:
```bash
git rebase --continue
```
4. Repeat until all conflicts are resolved and rebase is complete.
## Step 4: Handle Rebase Failure
If unable to resolve conflicts automatically:
- Show the conflicting files and conflict markers to the user
- Ask for guidance on how to resolve
- If the user wants to abort:
```bash
git rebase --abort
```
## Step 5: Push Changes
After successful rebase, force push to update the remote branch:
```bash
git push --force-with-lease
```
Note: `--force-with-lease` is safer than `--force` as it prevents overwriting others' work.
## Step 6: Report Result
Summarize the operation:
1. Number of commits rebased
2. Any conflicts that were resolved
3. Confirmation that the branch is now up-to-date with origin/main
© dyoshikawa · MIT · dyoshikawa/rulesync