Git Workflow Skill
Expert patterns for Git version control: branching, commits, collaboration, and CI/CD.
Critical Rules (Non-Negotiable)
- No direct push to main — always open a PR.
- No merge before all review threads are resolved — run the merge gate in
references/pull-request-workflow.md.
- No squash unless user asked — atomic commits preserved; keeps GPG signatures and bisection.
- No "tested/verified/working" without pasted command output — if you cannot run the check, say so.
- No edits to installed skill/plugin cache paths (
~/.claude/skills/, ~/.claude/plugins/cache/, **/.bare/**) — always the repo worktree. Verify pwd first.
- Force-push only with
--force-with-lease — never plain --force.
See references/pull-request-workflow.md for the merge-gate command, atomic-commit guidance, and review-thread SHA-citation pattern.
Reference Files
Load references on demand based on the task at hand:
| Reference |
Content Triggers |
references/branching-strategies.md |
Branching model, Git Flow, GitHub Flow, trunk-based, branch protection |
references/commit-conventions.md |
Commit messages, conventional commits, semantic versioning, commitlint |
references/pull-request-workflow.md |
PR create/review/merge, thread resolution, merge strategies, CODEOWNERS, signed commits + rebase |
references/ci-cd-integration.md |
GitHub Actions, GitLab CI, semantic release, deployment |
references/advanced-git.md |
Rebase, cherry-pick, bisect, stash, worktrees, reflog, submodules, recovery |
references/github-releases.md |
Release management, immutable releases, --latest=false, multi-branch |
references/git-hooks-setup.md |
Hook frameworks, detection, recommended hooks per stage |
references/claude-code-hooks.md |
Claude Code settings.json hooks — merge gate, cache-path rejection, auto-lint |
references/code-quality-tools.md |
shellcheck, shfmt, git-absorb, difftastic |
Conventional Commits
<type>[scope]: <description>
Types: feat (MINOR), fix (PATCH), docs, style, refactor, perf, test, build, ci, chore, revert
Breaking change: Add ! after type or BREAKING CHANGE: in footer.
Branch Naming
feature/TICKET-123-description
fix/TICKET-456-bug-name
release/1.2.0
hotfix/1.2.1-security-patch
Hook Detection
Before first commit, detect and install hooks:
ls lefthook.yml .lefthook.yml captainhook.json .pre-commit-config.yaml .husky/pre-commit 2>/dev/null || echo "No hooks"
Install: lefthook.yml -> lefthook install | captainhook.json -> composer install | .husky/ -> npm install | .pre-commit-config.yaml -> pre-commit install
Critical Release Rules
- Immutable releases: Deleted releases permanently block tag reuse; bump version instead.
- Multi-branch releases: Use
--latest=false from non-default branches.
- Pre-release: Version bumped, CI green, CHANGELOG updated,
git pull BEFORE gh release create.
PR Merge Requirements
Before merging: all threads resolved, CI checks green (including annotations), branch rebased, commits signed (if required). For signed commits + rebase-only repos, use local git merge --ff-only.
Verification
./scripts/verify-git-workflow.sh /path/to/repository
Contributing: https://github.com/netresearch/git-workflow-skill
1---2name: git-workflow3description: Use when establishing branching strategies, implementing Conventional Commits, creating or reviewing PRs, resolving PR review comments, merging PRs (including CI verification, auto-merge queues, and post-merge cleanup), managing PR review threads, merging PRs with signed commits, handling merge conflicts, creating releases, integrating Git with CI/CD, setting up git hooks (lefthook, captainhook, husky, pre-commit), or debugging hook-install failures in git worktrees.4license: (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.05---67# Git Workflow Skill89Expert patterns for Git version control: branching, commits, collaboration, and CI/CD.1011## Critical Rules (Non-Negotiable)12131. **No direct push to main** — always open a PR.142. **No merge before all review threads are resolved** — run the merge gate in `references/pull-request-workflow.md`.153. **No squash unless user asked** — atomic commits preserved; keeps GPG signatures and bisection.164. **No "tested/verified/working" without pasted command output** — if you cannot run the check, say so.175. **No edits to installed skill/plugin cache paths** (`~/.claude/skills/`, `~/.claude/plugins/cache/`, `**/.bare/**`) — always the repo worktree. Verify `pwd` first.186. **Force-push only with `--force-with-lease`** — never plain `--force`.1920See `references/pull-request-workflow.md` for the merge-gate command, atomic-commit guidance, and review-thread SHA-citation pattern.2122## Reference Files2324Load references on demand based on the task at hand:2526| Reference | Content Triggers |27|-----------|-----------------|28| `references/branching-strategies.md` | Branching model, Git Flow, GitHub Flow, trunk-based, branch protection |29| `references/commit-conventions.md` | Commit messages, conventional commits, semantic versioning, commitlint |30| `references/pull-request-workflow.md` | PR create/review/merge, thread resolution, merge strategies, CODEOWNERS, signed commits + rebase |31| `references/ci-cd-integration.md` | GitHub Actions, GitLab CI, semantic release, deployment |32| `references/advanced-git.md` | Rebase, cherry-pick, bisect, stash, worktrees, reflog, submodules, recovery |33| `references/github-releases.md` | Release management, immutable releases, `--latest=false`, multi-branch |34| `references/git-hooks-setup.md` | Hook frameworks, detection, recommended hooks per stage |35| `references/claude-code-hooks.md` | Claude Code `settings.json` hooks — merge gate, cache-path rejection, auto-lint |36| `references/code-quality-tools.md` | shellcheck, shfmt, git-absorb, difftastic |3738## Conventional Commits3940```41<type>[scope]: <description>42```4344**Types**: `feat` (MINOR), `fix` (PATCH), `docs`, `style`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `revert`4546**Breaking change**: Add `!` after type or `BREAKING CHANGE:` in footer.4748## Branch Naming4950```51feature/TICKET-123-description52fix/TICKET-456-bug-name53release/1.2.054hotfix/1.2.1-security-patch55```5657## Hook Detection5859Before first commit, detect and install hooks:6061```bash62ls lefthook.yml .lefthook.yml captainhook.json .pre-commit-config.yaml .husky/pre-commit 2>/dev/null || echo "No hooks"63```6465Install: lefthook.yml -> `lefthook install` | captainhook.json -> `composer install` | .husky/ -> `npm install` | .pre-commit-config.yaml -> `pre-commit install`6667## Critical Release Rules68691. **Immutable releases**: Deleted releases permanently block tag reuse; bump version instead.702. **Multi-branch releases**: Use `--latest=false` from non-default branches.713. **Pre-release**: Version bumped, CI green, CHANGELOG updated, `git pull` BEFORE `gh release create`.7273## PR Merge Requirements7475Before merging: all threads resolved, CI checks green (including annotations), branch rebased, commits signed (if required). For signed commits + rebase-only repos, use local `git merge --ff-only`.7677## Verification7879```bash80./scripts/verify-git-workflow.sh /path/to/repository81```8283---8485> **Contributing:** https://github.com/netresearch/git-workflow-skill