Skip to main content

git-workflow

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.

소스 정보

저장소
jezweb/claude-skills
최근 소스 활동
2026년 3월 17일 10:24
감지된 SKILL.md 언어
영어
스타
1,108
포크
110

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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: 1. **Gather context** - `git log main..HEAD --oneline` — list all commits on the branch - `git diff main...HEAD --stat` — see all changed files - `git status` — check for uncommitted work 2. **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 3. **Push and create** ```bash 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 )" ``` 4. **Verify** — `gh pr view --web` to open in browser ## Branch Cleanup Clean up merged branches safely: 1. **Switch to main and pull latest** ```bash git checkout main && git pull ``` 2. **List merged branches** (excludes main/master/develop) ```bash git branch --merged main | grep -vE '^\*|main|master|develop' ``` 3. **Delete local merged branches** ```bash git branch --merged main | grep -vE '^\*|main|master|develop' | xargs -r git branch -d ``` 4. **Prune remote tracking refs** ```bash git fetch --prune ``` 5. **List remote branches with no local tracking** (optional) ```bash git branch -r --merged origin/main | grep -vE 'main|master|develop|HEAD' ``` ## Merge Conflict Resolution When a PR has conflicts: 1. **Assess the conflict scope** ```bash git fetch origin git merge origin/main --no-commit --no-ff git diff --name-only --diff-filter=U # List conflicted files ``` 2. **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 3. **If rebase is cleaner** (few commits, no shared history): ```bash git rebase origin/main # Resolve conflicts per commit, then: git rebase --continue ``` 4. **If rebase is messy** (many conflicts, architectural divergence): - Abort: `git rebase --abort` or `git 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 5. **Verify** — run tests, check the diff looks right ## Monorepo Release Tags In monorepos, scope tags to the package: ```bash # ❌ 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`: ```bash 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:** ```bash 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: ```bash gh repo view --json visibility -q '.visibility' ``` If `PRIVATE`, ensure: - `LICENSE` contains proprietary notice (not MIT/Apache) - `package.json` has `"license": "UNLICENSED"` and `"private": true` - No `CONTRIBUTING.md` or "contributions welcome" in README
GitHub에서 보기