Skip to main content

rebase

Rebase the current branch onto its base branch, resolve all conflicts, and verify lint, i18n, and build pass. Use when the user asks to rebase, update, or sync a branch with its upstream base.

소스 정보

저장소
openshift/lightspeed-console
최근 소스 활동
2026년 4월 20일 00:56
감지된 SKILL.md 언어
영어
스타
10
포크
37

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
rebase
description
Rebase the current branch onto its base branch, resolve all conflicts, and verify lint, i18n, and build pass. Use when the user asks to rebase, update, or sync a branch with its upstream base.
# Rebase Rebase the current branch onto its base branch. ## Step 1 — Determine the base branch Read [release-branches.md](../release/release-branches.md) to get the list of branches. For each branch, compute the merge-base with HEAD and count the commits between them: ```sh mb=$(git merge-base HEAD <branch>) git rev-list --count "$mb"..HEAD ``` The base branch is whichever has the **lowest** commit count (fewest commits between the merge-base and HEAD). If counts are tied, prefer `main`. Tell the user which base branch was detected before proceeding. ## Step 2 — Check if base branch is up to date Run `git fetch upstream <base-branch>` to update the remote tracking ref (this is read-only and does not change any local branches), then compare: ```sh git fetch upstream <base-branch> git rev-list --count <base-branch>..upstream/<base-branch> ``` If the count is **0**, the local base branch is up to date — skip ahead to **Step 3**. If the count is **greater than 0**, tell the user how many commits their local base branch is behind the remote and **ask whether they want to pull**. Do NOT pull without the user's consent. - If the user says **yes**, run `git checkout <base-branch> && git merge --ff-only upstream/<base-branch> && git checkout -` then continue to Step 3. - If the user says **no** (or to skip), continue to Step 3 using the local base branch as-is. ## Step 3 — Rebase Save the current commit hash before rebasing so it can be used for comparison later: ```sh pre_rebase_head=$(git rev-parse HEAD) git rebase <base-branch> ``` If the rebase completes cleanly, skip to **Step 4**. ### Resolving conflicts When conflicts occur, repeat this loop until the rebase finishes: 1. Run `git diff --name-only --diff-filter=U` to list conflicting files. 2. Read each conflicting file, examine the conflict markers (`<<<<<<<`, `=======`, `>>>>>>>`), and resolve them by keeping the correct version. Prefer incoming (base-branch) changes for dependency updates and lockfile entries; prefer the current branch's changes for feature code — but use judgment and the surrounding context to decide. 3. Stage resolved files: `git add <files>`. 4. Continue: `git rebase --continue`. 5. If new conflicts appear, go back to substep 1. ## Step 4 — Fix lint, i18n, and build After the rebase succeeds, run the following commands **in order**, fixing any errors before moving on: 1. `npm run lint-fix` — fix lint/formatting issues automatically. 2. `npm run i18n` — regenerate locale files. 3. Before building, check whether `npm install` needs to be run. Compare the current `package-lock.json` against the saved pre-rebase commit: ```sh git diff "$pre_rebase_head" -- package-lock.json ``` If there are changes, run `npm install` before continuing. 4. `npm run build` — ensure the project compiles. If any step produces errors that `lint-fix` did not auto-resolve, fix them manually and re-run the failing command until it passes. ## Step 5 — Report Summarize what happened: - Which base branch was used - How many conflicts were resolved (and in which files) - Whether lint, i18n, and build passed cleanly or required fixes
GitHub에서 보기