From jj
Rebases the current jj changeset stack onto the latest trunk: fetches updates, identifies stack root, performs rebase, displays log, and reports conflicts.
npx claudepluginhub jeffh/claude-plugins --plugin jj# Rebase Current Stack Rebase the current changeset stack onto the latest trunk. ## Process 1. **Fetch latest changes:** 2. **Identify the stack root:** - This finds the earliest changeset in the current stack that's not on trunk - If this returns nothing, you're already on trunk - nothing to rebase 3. **Rebase the stack:** - This rebases the entire stack (from root through `@`) onto trunk - Uses the same revset expression to ensure consistency 4. **Show result:** ## Handling Conflicts If rebase reports conflicts: 1. Run `jj status --no-pager` to see conf...
/rebaseRebases current feature branch onto latest upstream branch, resolves conflicts, runs full test suite, and reports branch details, commits rebased, and conflicts resolved.
/rebaseRebases current branch onto target branch safely: auto-commits changes, creates backup ref, resolves conflicts automatically favoring target, runs lints/tests, provides summary and smoketest guide.
/rebaseRebases current branch onto specified feature branch using worktrees and tmux, with automatic conflict resolution. Launches tmux session for monitoring progress.
/rebaseInteractively rebase current branch onto target (default origin/main), with safety checks, conflict guidance, and post-rebase push reminder.
/rebaseRebase current branch onto target branch (defaults to main/master), resolve conflicts interactively, and optionally force-push with safety checks.
/rebaseInteractive git rebase with visual plan and AI-powered commit improvements
Rebase the current changeset stack onto the latest trunk.
Fetch latest changes:
jj git fetch
Identify the stack root:
jj log -r 'roots(::@ ~ ::trunk())'
Rebase the stack:
jj rebase -s 'roots(::@ ~ ::trunk())' -d trunk()
@) onto trunkShow result:
jj log
If rebase reports conflicts:
jj status --no-pager to see conflicted filesEmpty working copy (@ has no changes):
Already on trunk:
roots(::@ ~ ::trunk()) returns nothing, inform the user they're already up to datetrunk() not configured:
trunk() fails, fall back to checking for main@origin or master@origin:
jj log -r 'main@origin | master@origin' --no-graph -T 'self.bookmarks()'
main@origin)trunk() is jj's built-in revset for the primary branch (respects repo config)-s rebases the source and all descendants::@ means "all ancestors of @ including @"~ ::trunk() excludes trunk and its ancestors