Skills

Rebase Latest Main

Fetch latest origin/main and rebase it onto the current branch, resolving conflicts if...

Install

npx skills add dyoshikawa/rulesync --skill rebase-latest-main -g -a claude-code -y
Repository
dyoshikawa/rulesync1.6k
Category
Engineering
Updated
3d ago
License
MIT
Context cost
Lightabout 476 tokens
Runs scripts
No, instructions only

What it does

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.

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:

    git branch --show-current
    
  2. Ensure there are no uncommitted changes:

    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:

git fetch origin main

Step 3: Rebase onto origin/main

Start the rebase:

git rebase origin/main

If rebase succeeds without conflicts:

Proceed to Step 5.

If conflicts occur:

  1. Identify conflicting files:

    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:
      git add <resolved-file>
      
  3. Continue the rebase:

    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:
    git rebase --abort
    

Step 5: Push Changes

After successful rebase, force push to update the remote branch:

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

More in Engineering