From dev-tools
Guides git workflows with bash commands: prepare PRs via GitHub CLI, clean merged branches, resolve merge conflicts, tag monorepo releases. Use for PR creation, branch maintenance, or conflict resolution.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dev-tools:git-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Guided workflows for common git operations that benefit from structured steps.
Guided workflows for common git operations that benefit from structured steps.
When preparing a pull request:
Gather context
git log main..HEAD --oneline — list all commits on the branchgit diff main...HEAD --stat — see all changed filesgit status — check for uncommitted workDraft PR content
Push and create
git push -u origin HEAD
gh pr create --title "..." --body "$(cat <<'EOF'
## Summary
- ...
## Test plan
- [ ] ...
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Verify — gh pr view --web to open in browser
Clean up merged branches safely:
Switch to main and pull latest
git checkout main && git pull
List merged branches (excludes main/master/develop)
git branch --merged main | grep -vE '^\*|main|master|develop'
Delete local merged branches
git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d
Prune remote tracking refs
git fetch --prune
List remote branches with no local tracking (optional)
git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD'
When a PR has conflicts:
Assess the conflict scope
git fetch origin
git merge origin/main --no-commit --no-ff
git diff --name-only --diff-filter=U # List conflicted files
For each conflicted file, read the file and resolve:
If rebase is cleaner (few commits, no shared history):
git rebase origin/main
# Resolve conflicts per commit, then:
git rebase --continue
If rebase is messy (many conflicts, architectural divergence):
git rebase --abort or git merge --abortgit show origin/branch:path/to/file > /tmp/extracted.txtVerify — run tests, check the diff looks right
In monorepos, scope tags to the package:
# ❌ Ambiguous in monorepos
git tag v2.1.0
# ✅ Scoped to package
git tag contextbricks-v2.1.0
git push origin contextbricks-v2.1.0
Pattern: {package-name}-v{semver}
When creating a new repo, always create .gitignore BEFORE the first git add:
cat > .gitignore << 'EOF'
node_modules/
.wrangler/
dist/
.dev.vars
*.log
.DS_Store
.env
.env.local
EOF
git init && git add . && git commit -m "Initial commit"
If node_modules is already tracked:
git rm -r --cached node_modules/
git commit -m "Remove node_modules from tracking"
Before publishing or sharing a private repo:
gh repo view --json visibility -q '.visibility'
If PRIVATE, ensure:
LICENSE contains proprietary notice (not MIT/Apache)package.json has "license": "UNLICENSED" and "private": trueCONTRIBUTING.md or "contributions welcome" in READMEnpx claudepluginhub jezweb/claude-skills --plugin dev-toolsManages Git branch strategy, worktrees, commits, PR preparation, merge/rebase decisions, conflict resolution, tagging, and release notes. Validates state before making changes.
Guides git workflow setup and best practices: branching strategies (GitHub Flow, trunk-based, GitFlow), conventional commits, merge/rebase decisions, conflict resolution, and team collaboration.
Guides Git branching strategies (GitHub Flow, trunk-based, GitFlow), commit conventions, merge vs rebase, conflict resolution, and collaborative development best practices.