How to install git-workflow
npx skills add https://github.com/jezweb/claude-skills --skill git-workflowFull instructions (SKILL.md)
Source of truth, from jezweb/claude-skills.
name: git-workflow description: "Guided git workflows: prepare PRs, clean up branches, resolve merge conflicts, handle monorepo tags, squash-and-merge patterns. Use when asked to prepare a PR, clean branches, resolve conflicts, or tag a release." compatibility: claude-code-only
Git Workflow
Guided workflows for common git operations that benefit from structured steps.
PR Preparation
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 work
-
Draft PR content
- Title: under 70 chars, describes the change (not the branch name)
- Body: summarise the "why", list key changes, add test plan
- Use the commit history to write the summary — don't rely on memory
-
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 --webto open in browser
Branch Cleanup
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'
Merge Conflict Resolution
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:
- Keep both changes if they're in different areas
- If architecturally incompatible, prefer the main branch's approach and re-apply the PR's intent on top
-
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):
- Abort:
git rebase --abortorgit merge --abort - Extract useful code:
git show origin/branch:path/to/file > /tmp/extracted.txt - Apply changes manually to main
- Close original PR with explanation
- Abort:
-
Verify — run tests, check the diff looks right
Monorepo Release Tags
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}
.gitignore-First Init
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"
Private Repo License Audit
Before publishing or sharing a private repo:
gh repo view --json visibility -q '.visibility'
If PRIVATE, ensure:
LICENSEcontains proprietary notice (not MIT/Apache)package.jsonhas"license": "UNLICENSED"and"private": true- No
CONTRIBUTING.mdor "contributions welcome" in README
Related skills
More from jezweb/claude-skills and the wider catalog.

github-release
Prepare and publish GitHub releases. Sanitizes code for public release (secrets scan, personal artifacts, LICENSE/README validation), creates version tags, and publishes via gh CLI. Trigger with 'release', 'publish', 'open source', 'prepare for release', 'create release', or 'github release'.

google-apps-script
Build Google Apps Script automation for Sheets with custom menus, triggers, dialogs, and integrations.

google-chat-messages
Send Google Chat messages via incoming webhooks — text, rich cards (cardsV2), threaded replies. TypeScript types, card builder utility, widget reference inline. Use whenever the user wants to post to Google Chat from a script, build a chatbot reply, send a notification card, build a Google Chat webhook integration, or troubleshoot card / threading issues.

gws-install
Quick install of the Google Workspace CLI (gws) on an additional machine using existing OAuth credentials. Requires client_secret.json from a previous gws-setup. Use whenever the user wants to install gws on a new computer, reinstall after a fresh OS, configure a second workstation, or says 'install gws', 'gws on new machine', 'set up gws again'.

gws-setup
Set up the Google Workspace CLI (gws) from scratch. Guides through GCP project creation, OAuth credentials, authentication, and installing 90+ agent skills for Claude Code. Use whenever the user wants to set up gws for the first time, configure Google Workspace API access, install the Google Workspace CLI, or troubleshoot gws auth issues.

hono-api-scaffolder
Scaffold Hono API routes for Cloudflare Workers. Produces route files, middleware, typed bindings, Zod validation, error handling, and API_ENDPOINTS.md documentation. Use after a project is set up with cloudflare-worker-builder or vite-flare-starter, when you need to add API routes, create endpoints, or generate API documentation.