From Dev10x
Configures global git aliases for branch comparisons (log, diff, rebase, autosquash) on develop/main/trunk to avoid Bash permission prompts from $(git merge-base ...) subshells.
npx claudepluginhub dev10x-guru/dev10x-claude --plugin Dev10xThis skill is limited to using the following tools:
**Announce:** "Using Dev10x:git-alias-setup to configure branch-comparison aliases."
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Announce: "Using Dev10x:git-alias-setup to configure branch-comparison aliases."
Configures global git aliases that wrap $(git merge-base ...) subshells.
Without these aliases, commands like git log $(git merge-base develop HEAD)..HEAD
trigger extra permission prompts because the $() substitution shifts
the Bash command prefix.
This skill follows references/task-orchestration.md patterns.
Create a task at invocation, mark completed when done:
REQUIRED: Create a task at invocation. Execute at startup:
TaskCreate(subject="Configure git aliases", activeForm="Configuring aliases")Mark completed when done: TaskUpdate(taskId, status="completed")
Run the setup script:
${CLAUDE_PLUGIN_ROOT}/skills/git-alias-setup/scripts/git-alias-setup.sh
Each base branch gets three comparison aliases ({base}-log, {base}-diff,
{base}-rebase) plus a non-interactive autosquash alias (autosquash-{base}).
| Alias | Equivalent |
|---|---|
git develop-log | git log --oneline $(git merge-base develop HEAD)..HEAD |
git develop-diff | git diff $(git merge-base develop HEAD)..HEAD |
git develop-rebase | git rebase -i --autosquash $(git merge-base develop HEAD) |
git autosquash-develop | GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash $(git merge-base origin/develop HEAD) |
git development-log | git log --oneline $(git merge-base development HEAD)..HEAD |
git development-diff | git diff $(git merge-base development HEAD)..HEAD |
git development-rebase | git rebase -i --autosquash $(git merge-base development HEAD) |
git autosquash-development | GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash $(git merge-base origin/development HEAD) |
git trunk-log | git log --oneline $(git merge-base trunk HEAD)..HEAD |
git trunk-diff | git diff $(git merge-base trunk HEAD)..HEAD |
git trunk-rebase | git rebase -i --autosquash $(git merge-base trunk HEAD) |
git autosquash-trunk | GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash $(git merge-base origin/trunk HEAD) |
git main-log | git log --oneline $(git merge-base main HEAD)..HEAD |
git main-diff | git diff $(git merge-base main HEAD)..HEAD |
git main-rebase | git rebase -i --autosquash $(git merge-base main HEAD) |
git autosquash-main | GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash $(git merge-base origin/main HEAD) |
git master-log | git log --oneline $(git merge-base master HEAD)..HEAD |
git master-diff | git diff $(git merge-base master HEAD)..HEAD |
git master-rebase | git rebase -i --autosquash $(git merge-base master HEAD) |
git autosquash-master | GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash $(git merge-base origin/master HEAD) |
The session start hook checks for these aliases automatically. If they are missing, it will suggest running this skill.
After setup, use git {base}-log instead of the full subshell form
in all git operations to avoid permission friction.
Aliases are set globally (--global) so they persist across all
repositories and sessions.